- 博客(40)
- 收藏
- 关注
原创 代码随想录算法训练营第十一天(补) 栈与队列| 后序表达式、滑动窗口、高频元素、链表总结
在栈与队列系列中,我们强调栈与队列的基础,也是很多同学容易忽视的点。使用抽象程度越高的语言,越容易忽视其底层实现,而C++相对来说是比较接近底层的语言。我们用栈实现队列,用队列实现栈来掌握的栈与队列的基本操作。接着,通过括号匹配问题、字符串去重问题、逆波兰表达式问题来系统讲解了栈在系统中的应用,以及使用技巧。通过求滑动窗口最大值,以及前K个高频元素介绍了两种队列:单调队列和优先级队列,这是特殊场景解决问题的利器,是一定要掌握的。
2024-10-29 21:11:49
502
原创 代码随想录算法训练营第十天 栈与队列| 栈、队列、括号匹配、消消乐问题
解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。我们的代码只要覆盖了这三种不匹配的情况,就不会出问题,可以看出 动手之前分析好题目的重要性。给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。
2024-10-26 18:10:39
1048
原创 代码随想录算法训练营第四天 链表| 两两交换节点、删除倒数第n个数、环形链表
【代码】代码随想录算法训练营第四天 链表| 两两交换节点、删除倒数第n个数、环形链表。
2024-10-24 22:46:16
190
原创 代码随想录算法训练营第九天 字符串| 反转单词、右旋字符串、字符串总结
代码随想录其实我们已经学习了十天的字符串了,从字符串的定义到库函数的使用原则,从各种反转到KMP算法,相信大家应该对字符串有比较深刻的认识了。那么这次我们来做一个总结。字符串是若干字符组成的有限序列,也可以理解为是一个字符数组,但是很多语言对字符串做了特殊的规定,接下来我来说一说C/C++中的字符串。在C语言中,把一个字符串存入一个数组时,也把结束符 '\0'存入数组,并以此作为该字符串是否结束的标志。a[i]!= '\0';i++) {
2024-10-24 22:34:50
1008
原创 代码随想录算法训练营第八天 字符串| 反转字符串I、II、替换数字
● 344.反转字符串● 541. 反转字符串II● 卡码网:54.替换数字。
2024-10-23 17:15:38
538
原创 代码随想录算法训练营第五天 哈希表| 理论知识、数组、set、map
● 哈希表理论基础● 242.有效的字母异位词● 349. 两个数组的交集● 202. 快乐数● 1. 两数之和。
2024-10-21 20:00:08
301
原创 代码随想录算法训练营第三天(补) 链表 | 链表理论基础、移除元素、反转链表
int val;ListNode(int x) : val(x), next(NULL) {}// 节点的构造函数。
2024-10-19 14:22:29
412
1
原创 代码随想录算法训练营第二天(补) | 滑动窗口、模拟、前缀和
本题关键还是在转圈的逻辑,在二分搜索中提到的区间定义,在这里又用上了。和二分法一样,得注意区间的取值,比如这题是左闭右开[x,y),一层一层模拟。注意前缀和最终的下标问题,eg:[a,b] 要用 p[b]-p[a-1]个人感觉前缀和还是蛮简单的,就是把求的和存储在数组中,从而避免重复计算。2、双指针:把right作为后一个指针,要不然又会变成暴力。1、暴力解法:是双指针中把i当做了前指针。
2024-10-19 01:02:25
477
2
原创 代码随想录算法训练营第一天 | 数组理论基础,704. 二分查找,27. 移除元素 双指针练习
①下标都是从0开始②内存空间地址连续(C++二维数组也是连续的,但是java不是)
2024-10-16 20:39:09
413
1
原创 Harmony OS 初级证书 习题答案1
鸿蒙生态应用开发白皮书》全面阐释了鸿蒙生态下应用开发核心理念、关键能力以及创新体验,旨在帮助开发者快速、准确、全面的了解鸿蒙开发套件给开发者提供的能力全景和未来的愿景。“一次开发,多端部署”指的是一个工程,一次开发上架,多端按需部署。为了实现这一目的,HarmonyOS提供了多端开发环境,多端开发能力以及多端分发机制。HUAWEI DevEco Studio是面向HarmonyOS生态的集成开发环境,提供了一站式的HarmonyOS生态应用开发能力。C. 多端分发机制D. 多端UI适配。
2024-08-15 14:22:52
683
原创 零基础程序员(前端)速成——数字游牧人&&罗大富Bigrich
前端入门课程就学完了,但是前端还有很多学习内容,以下是建议的学习路线:进阶学习建议Vue.js和微信小程序vue.js //易于上手的js开发框架,作者是华人,中文友好微信小程序使用vue开发微信小程序注意:以上三者无先后顺序可能会用到uni-app软件,一套代码用到多个平台上。
2024-08-03 17:54:09
939
原创 LeetCode 142. 环形链表 II
2、有环处理:让其中一个指针返回起点,另一指针按照相同速度遍历,相遇处为环的起点处。指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。1、思路仍然是以不同速度遍历链表,看是否相遇;如果链表中有某个节点,可以通过连续跟踪。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。,返回链表开始入环的第一个节点。来表示链表尾连接到链表中的位置(,仅仅是为了标识链表的实际情况。返回索引为 1 的链表节点。如果链表无环,则返回。,则在该链表中没有环。
2024-07-22 20:39:43
482
原创 LeetCode 61. 旋转链表
旋转链表,将链表每个节点向右移动。思路:把链表拆开成两部分,再拼接。用双指针同时移动确定拆开位置。给你一个链表的头节点。
2024-07-22 20:11:35
182
原创 LeetCode 141. 环形链表
指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。来表示链表尾连接到链表中的位置(索引从 0 开始)。如果链表中有某个节点,可以通过连续跟踪。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。仅仅是为了标识链表的实际情况。,判断链表中是否有环。给你一个链表的头节点。
2024-07-22 19:25:23
347
原创 LeetCode 206. 反转链表
建立一个新链表,遍历原来的链表,每遍历一个结点就插入到新链表的头结点处,返回新建立的链表。链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?,请你反转链表,并返回反转后的链表。1、确定递归结束条件。
2024-07-22 19:00:06
141
原创 XTU OJ 1108 a+b
请计算a+b,但a和b是按不同的进制给出的。进制最小为2进制,最大为62进制,其中使用A-Z依次表示10到35,a-z表示36-61。请写出a+b的结果,结果按十进制输出。输入 第一行是一个整数N,表示有多少个测试样例,以后每行是一个样例,每行是4个部分,分别为a的值,a的进制,b的值,b的进制。4个部分之间用一个空格隔开,保证输入的合法,a、b和a+b的值都在-2^31到2^31-1之间。2、把数值转化成十进制数字(可以按照从从后往前转,也可以按照从前往后转,这里按照从前往后转,用累乘进制数实现)
2024-07-19 20:51:55
333
原创 XTU OJ 1337 Clockwise Or Unclokwise
我们把一个字符串A按圆圈排列,你可以从圆圈上任意一个字符开始,顺时钟或者逆时钟读若干个字符,请问是否能得到给定的字符串B?比如字符串A="abcde",我们从第2个字符开始,逆时钟读3个字符,可以得到字符串"bae"。每个样例的占两行,第一行是字符串A,第二行是字符串B,所有字符串都只含小写英文字母,且长度不超过100个字符。按照 Jay_is_Chou的 XTU-OJ 1337-Clockwise Or Unclokwise,不过我是将先输入的字符串进行翻转。每行输出一个样例的结果,如果可以输出"
2024-07-16 22:03:27
302
原创 XTU OJ 1116 水仙花数
如果一个n位数的每个数位的n次方和就是本身,那么我们称这种数为“水仙花数”。比如371,33+73+13=27+343+1 = 371。现给你一个数,请求这个数是否是水仙花数。每个样例占一行,为一个整数a(1<=a <=1,000,000),如果a为 0,那么表示输入结束,这个样例不需要处理。每行输出一个样例的结果,如果是就输出“Yes”,否则输出“No”。
2024-07-16 17:46:37
217
原创 XTU OJ 1215 A+B V
小明很喜欢做a+b,他但经常忘记进位,所以他算88+12=90,而不是100。现在你给了小明一些a+b的算式,请问他算出来会是什么?2、将数组的对应下标的数值进行相加存放于数组arr中,(arr[i]+brr[i])%10得到不进位计算方法下的值。第一行是一个整数K,表示样例的个数。每个样例占一行,为两个整数a,b,0≤a,b≤1e9。1、取出a,b的每一位数字存放于arr数组,brr数组中。每行输出一个样例的结果,不要输出前导0。3、为避免前导0,对得到的结果求数值处理。
2024-07-16 17:34:09
261
原创 XTU OJ 1323 身份证验证
第二代身份证号为18位,我们将身份证号定义为ID=a17a16⋯a0¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯,那么前17位ai,i=17,为数字0∼9,最后一位为校验位,为0∼9和X,X表示数值10。第一行是一个整数K(K≤1000),表示样例的个数。以后每行是一个18位的字符串,前17位为数字,最后一位为数字或者字母X。思路:题目不难,但是易错,注意字符串数组下标和题目给出公式的对应关系。如果校验通过,输出“Yes”,否则输出“No”。请写一个程序,对用户输入的身份证号码进行校验。
2024-07-14 16:38:58
301
1
原创 XTU oj 1143 子序列
思路:题目挺简单的,只要遍历长的字符串数组一遍,检查短的字符串元素是否在长的都按照顺序出现即可,控制短的字符串按照顺序出现的方法:ans计数。第一行是一个整数K,表示样例数。以后每个样例占2行,分别为两个字符串a和b。字符串只有英文大写字母组成,长度不超过200。给你两个字符串a和b,请问字符串a是否可以去掉若干个字符以后成为字符串b?每行输出一个结果,如果包含,输出Yes,否则输出No。
2024-07-14 16:15:16
272
原创 XTU OJ 1353 Digit String
小明获得了一些密码的片段,包含0∼9,A∼F 这些字符,他猜这些是某个进制下的一个整数的数码串。小明想知道从2到16进制中,哪些进制下,这个数码串的对应的十进制整数值,等于n?每行输出一个样例的结果。如果存在多个解,输出最小的那个进制。如果没有满足的进制,输出"Impossible"。存在不超过1000个样例,每行一个样例。每行包括两部分,数码串(串长不超过31),整数n(1≤n≤109)又是一次样例都过,结果WA的测试题,最后发现是第25行sum=0的问题。测试时的代码:(WA)
2024-04-12 17:05:04
303
1
原创 特别数的和
小明对数位中含有2,0,1,9的数很感兴趣,不包括前导0,在1-40中这样的数包括1、2、9、10至32、39和40,共28个,他们的和是574。请问1-n中这样的数的和是多少?输入:40(1
2024-01-24 13:06:32
358
原创 XTU OJ 1183 sum×
每行输出一个样例的结果,a和b(a≤b),之间用一个空格隔开。如果存在多组,输出a最小的那一组;如果不存在这样的a和b,输出“None”(引号不用输出)。第一行是一个整数K,表示样例个数。每个样例占1行,两个整数c和d,0≤c,d≤109。整数a,b,其中a+b = c,a*b = d,已知c和d,问是否存在a和b?
2024-01-23 22:03:22
397
1
原创 XTU OJ 1469 扁担
你每次用扁担运送2件物品。众所周知,扁担如果不平衡,那么就特别费劲,我们定义每次的劳累值为扁担两头物品重量差的平方。每个样例的第一行是一个整数n (1≤n≤10000),第二行是2n个整数wi (1≤wi≤107)提示用__int64输入,以下代码用c++写。其实本题就是考差的平方最小的数学知识。第一行是一个整数T (1≤T≤100),表示样例的个数。请问运完所有物品,劳累值总和最少是多少?有2n件物品,第i件物品的重量为wi。巨大的输入量,请使用C风格的输入函数。每行输出一个样例的结果,为一个整数。
2024-01-23 21:12:28
681
2
原创 XTU OJ 1256 湘潭大学
湘潭大学简称“XTU”,作为即将成为湘大的一份子,怎么不能为湘大添砖加瓦了?现在给你一个字符串,请你计算一下,从中选取字符,最多能组成多少个“XTU”?第一行是一个整数K,表示样例的个数。以后每行一个字符串,字符串只包含英文大写字母,长度不会超过1000。题目比较简单,就是输出'X''T''U'中三个字符出现的最小次数。每行输出一个样例的结果。
2024-01-05 12:12:46
823
1
原创 XTU OJ 1255 勾股数
第一行是一个整数K,表示样例的个数。以后每行一个样例,为两个整数x,y,(1≤x,y≤10000)。每行输出一个样例的结果。如果不能构成勾股数,输出“None”,如果存在多个,输出最小的那个。勾股数是指满足a2+b2=c2的正整数,比如最有名的“勾三股四弦五”。现在给你两个正整数,请问是否存在另外一个正整数,使其成为“勾股数”?
2024-01-05 11:47:39
519
1
原创 XTU OJ 1323身份证验证
第二代身份证号为18位,我们将身份证号定义为ID=a17a16⋯a0¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯,那么前17位ai,i=17,为数字0∼9,最后一位为校验位,为0∼9和X,X表示数值10。第一行是一个整数K(K≤1000),表示样例的个数。以后每行是一个18位的字符串,前17位为数字,最后一位为数字或者字母X。这道题比较简单,按照题目给的公式输就行了,不过注意数字字符串转换成数值要减去‘0’。如果校验通过,输出“Yes”,否则输出“No”。
2023-12-29 21:52:36
465
1
原创 XTU OJ 1194
部分错排问题就是先从n份快递中选n-k份对的快递派送(涉及排列组合知识,用组合数的性质2解题,也就是用杨辉三角知识解题),再将剩下的k份进行全错排(涉及全错排知识——一个递推公式)。快递小哥每天都辛苦的送快递,今天他需要送N份快递给N个收件人,第i份快递需要送给第i个收件人。每行输入两个整数N和K,1≤N≤1000,0≤K≤N。(大家可以去看看完全错排和部分错排问题(一个著名的组排模型),下面链接内容解释的非常详细)每行输出一个样例的结果,因为数值会比较大,所有结果需要对109+7取模。
2023-12-28 23:07:56
418
1
原创 XTU OJ 1260 Completed String
AC代码1和2只有字母和ASCII码的区别,不过要注意字母与ASCII码在确定大小写字母范围时,不等号两边的取等问题。每行输出一个样例的结果,如果出现了所有的字符串,输出“Yes”,否则输出“No”。给一个字符串,请判断字符串是否出现了所有的英文字母(不区分大小写)。每行一个只含英文字母的字符串,长度不超过1000。巨大的输入量,请使用C风格的输入。
2023-12-27 22:21:40
378
1
原创 XTU OJ 1213 A+B III
小明非常喜欢做a+b的练习,他不清楚自己是否做对了,所以想找小文帮他看一下。但是小文不喜欢做a+b,所以他只是随意地抽了3题来看一下。假设小明做了n道,对了m道,那么抽的这三道题都对的概率是多少?第一行是一个整数K,表示样例的个数。每个样例占一行,为两个整数n和m,0≤m≤n≤1,000 且3≤n。每行输出一个样例的结果,如果概率是1或者0,输出1或0。否则输出a/b的分数形式,a和b互质。
2023-12-26 21:13:24
398
1
原创 XTU OJ 1149 随机数
线性同余随机数发生器是按Xn+1 = (aXn+c)%m 产生的,其中X0=0。我们希望能产生所有的0~m-1的数,现在给你一系列的a,c,m,请计算一下是否能产生所有的0~m-1的数。有多组样例,每个样例一行,为三个整数,a(1≤a;每行输出一个样例的结果,如果能产生所有0~m-1的数,输出Yes,否则输出No。
2023-12-25 20:05:42
602
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人