- 博客(21)
- 收藏
- 关注
原创 洛谷.P1019 .单词接龙
本题考查字符串及搜索,首先要找到符合题目要求的首字母的字符串,接着搜索与“龙”尾有重复的字符串并且字符串最多重复使用2次,所以要标记使用的次数,若字符串使用次数已经为两次,则跳过。我们用substr 来查找有重复的部分,前提是重复的字符串长度必须小于两字符串的长度。单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如。i 为字符串中字符的下标,即。
2023-07-20 15:45:19
289
原创 计蒜客.T3603.叫号系统
因为此题要求我们查找、更改紧急程度最小的病人,紧急程度最大的病人,编号为id的病人,经济成大为urg的病人等,所以我们可以创建一个map容器用来将编号为id与紧急程度为urg所对应地放置在容器中,并且map容器还可以自动排序,所以我们在找urg最小或urg最大的病人的id时,执教找容器中的第一个或最后一个所对应的id即可。一个病人到达医院后,会自动挂号、评测病情的紧急程度,并且会将信息加入到医院的叫号系统。对于100% 的数据,1≤n≤105,1≤op≤7,1≤id≤105,1≤urg≤105;
2023-07-17 18:07:16
220
1
原创 牛客.NC15029.吐泡泡
创建一个双端队列,若队列为空时,将字符从顶端插入队列中,若队列不为空时,判断该字符与队列顶端的字符是否相同,每组输出仅包含一行,输出一行字符串代表小鱼儿吐出的泡泡经过融合以后所剩余的泡泡。小鱼儿会吐出两种泡泡:大泡泡"O",小泡泡"o"。(是的你没看错,小气泡和大气泡不会产生任何变化的,原因我也不知道。,则将该字符从顶端插入队列中。两个相邻的小泡泡会融成一个大泡泡,两个相邻的大泡泡会爆掉。且此时顶端字符为’O‘时,将此时的顶端字符也弹出;每组输入包含一行仅有'O'与'o'组成的字符串。,则将顶端字符弹出,
2023-07-15 11:33:32
383
1
原创 Leetcode.215. 数组中的第K个最大元素
建立一个大根堆,将数组元素全放入大根堆中按非升序排序,要求第k个最大元素,则将大根堆中第k个元素之前的全弹出,最终将第k个最大元素放在堆顶,输出堆顶元素即可。请注意,你需要找的是数组排序后的第。你必须设计并实现时间复杂度为。个最大的元素,而不是第。
2023-07-14 16:47:35
244
1
原创 Leetcode.23. 合并 K 个升序链表
用一个小根堆来存储这k个结点,每次弹出堆顶结点,并把下一个结点插入堆中。请你将所有链表合并到一个升序链表中,返回合并后的链表。给你一个链表数组,每个链表都已经按升序排列。将它们合并到一个有序链表中得到。
2023-07-14 16:22:40
151
1
原创 Leetcode.506. 相对名次
定义一个map用来存放名次,用string类型的容器res来存放获奖情况,将名次为1,2,3所对应的获奖方式存入res中,若名次大于3时,将名次这个数字常量转换成字符存入res中。名次为 [1st, 2nd, 3rd, 4th, 5th]。名次为 [1st, 5th, 3rd, 2nd, 4th]。位运动员在比赛中的得分。的运动员得分最高,名次第。位运动员的获奖情况。
2023-07-14 11:00:13
271
1
原创 Leetcode.200.岛屿数量
最直观的例子就是“走迷宫”。你随意选择一个岔路口来走,走着走着发现走不通的时候,你就回退到上一个岔路口,重新选择一条路继续走,直到最终找到出口。在本题中我们可以采用深度优先搜索,遍历搜索1,若搜到1,则岛屿数量加1;将其改为0,并通过深度优先搜索将其上下左右的1改为0。首先找到第一个1,通过深度优先搜素,将1改为0,岛屿数量加1.一直遍历到最后一个,找出所有的岛屿数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。(水)组成的的二维网格,请你计算网格中岛屿的数量。
2023-07-13 15:27:03
222
1
原创 牛客.F.松鼠排序
松鼠宝宝有一排n个大小不一的坚果,松鼠宝宝想把坚果从小到大排序,每次他会选择两个坚果a和b每次花费1点力气把这两个坚果交换,爱动脑筋的松鼠宝宝想知道他排完这n个坚果一共需要花费的最少力气是多少?将给定的一串数与对应的下标进行匹配,若该数与下表不匹配时,将该数与相匹配的下标所对应的数进行交换,知道所有数都与下标所匹配为止。接下来一行n个整数代表每个坚果的大小(每个坚果大小都不一样,即大小为1-n的一个排列)一行输出代表松鼠宝宝花费的最小力气。第一行一个整数n代表坚果数。坚果大小x,1<=x<=n。
2023-07-13 10:06:56
273
1
原创 牛客.E.动物朋友
已知有n个动物朋友排成一排,每个动物朋友都有一个正整数的快乐值,涛涛每次会和连续的动物朋友玩,并且获得这些动物朋友快乐值的和的快乐,而涛涛是个完美主义者,他觉得快乐值刚好是m时候才是快乐的,现在请问有多少种选择方式,使得所选的连续的动物朋友的快乐值刚好为m。定义一个双指针 l ,r ,利用前缀和来求,当r<=n时,循环操作,直到r>n时停止循环,得出ans的值即是连续子段和等于m的个数。第二行输入n个正整数,第i个代表第i个动物朋友的快乐值。第一行输入n(1<=n<=1e6)和m(1<=m<=1e6)。
2023-07-13 09:23:23
587
1
原创 nowcoder NC14326 Rails
将数组中的元素从a[1] 开始与1~n个数按从小到大的顺序进行对比,若 a[l] 不等于该数,则将该数压入栈中,若相同,则 l++;若不相同,再判断a[l] 与栈顶元素是否相同,当栈为空时,说明元素都能匹配,否则就说明不能实现。类似于弹夹中的子弹一样先进去,却要后出来,而后进去,反而可以先出来的数据结构——
2023-07-11 15:00:48
130
原创 Leetcode 设计队列
在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。// 返回 true。// 返回 true。// 返回 true。// 返回 true。// 返回 true。// 返回 true。// 返回 false,队列已满。// 返回 true。// 返回 true。// 返回 true。// 返回 true。// 返回 true。// 返回 true。
2023-07-10 18:45:14
144
1
原创 Leetcode 50. Pow(x, n)
判断 n 的奇偶性,若n为奇数,则sum=X乘以X的平法的(n/2)次方,若为偶数则sum=X的平方的(n/2)次方。运用幂函数求解,首先判断n为整数还是负数,若n为负数,则将X=1/X,n=-n;
2023-07-10 16:10:18
71
1
原创 Leetcode 581. 最短无序连续子数组
将数组nums进行排序,将排序后的新数组放入数组a中。定义两个指针 left 和 right ,左指针指向两数组最左边开始从左向右遍历,右指针指向两数组最右边开始从右向左遍历,你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。若数组nums的长度为1时,说明数组中只有一个元素,则排序前后相同,直接输出0;若最终left>right,说明数组nums在排序前后相同,输出0;,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。子数组,并输出它的长度。
2023-07-10 09:27:58
88
1
原创 Leetcode 167. 两数之和 II - 输入有序数组
排列,则若numbers[left]+numbers[right]>target,right向左平移;则若numbers[left]+numbers[right]
2023-07-09 17:18:45
37
1
原创 Leetcode 859. 亲密字符串
其次,求两字符串中不同字符的个数,若不同字符的个数为0,则判断字符串中是否有相同的字符可以交换,若没有,则输出false,若有输出true;若不同字符的个数为2,则判断这两个不同的字符交换位置后与字符串goal是否相同,若相同则输出true,若不同则输出false;你可以交换 s[0] = 'a' 和 s[1] = 'b' 生成 "ba",此时 s 和 goal 相等。你可以交换 s[0] = 'a' 和 s[1] = 'a' 生成 "aa",此时 s 和 goal 相等。交换字母的定义是:取两个下标。
2023-07-09 16:21:33
58
1
原创 239. 滑动窗口最大值
遍历nums,将其数据像单调栈一样储存,数据在队列中递减。当输入的数比栈顶的数大时,将前边元素都踢出。的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的。滑动窗口的位置 最大值。滑动窗口每次只向右移动一位。239. 滑动窗口最大值。
2023-07-07 18:43:59
107
1
原创 LeetCode 389.找不同
利用按位异或,相同为0,不同为1的思想,将两个字符串按位异或,两字符串中相同的字符相消,最终返回出新增字符。随机重排,然后在随机位置添加一个字母。'e' 是那个被添加的字母。,它们只包含小写字母。
2023-07-06 16:01:31
61
2
原创 力扣20.有效的括号
将字符串遍历,将符号‘(’ 对应的 ‘)’、‘{’ 对应的 ‘}’ 、‘[’ 对应的 ‘ ]’ 插入栈中,遍历字符串,如果找到字符 ‘)’或 ‘}’ 或 ‘]’ ,若在栈顶,则将该字符从栈中踢出,否则输出false;若将字符串遍历完后,如果栈中不为空,则输出false。,判断字符串是否有效。
2023-07-05 23:44:25
145
1
原创 AcWing 129. 火车进栈
这里有 n列火车将要进站再出站,但是,每列火车只有 1 节,那就是车头。这 n 列火车按 1 到 n 的顺序从东方左转进站,这个车站是南北方向的,它虽然无限长,只可惜是一个死胡同,而且站台只有一条股道,火车只能倒着从西方出去,而且每列火车必须进站,先进后出。也就是说这个火车站其实就相当于一个栈,每次可以让右侧头火车进栈,或者让栈顶火车出站。现在请你按《字典序》输出前 20种可能的出栈方案。
2023-07-03 17:42:30
87
1
原创 AcWing 128. 编辑器
128. 编辑器你将要实现一个功能强大的整数序列编辑器。在开始时,序列是空的。编辑器共有五种指令,如下:1、I x,在光标处插入数值 x。2、D,将光标前面的第一个元素删除,如果前面没有元素,则忽略此操作。3、L,将光标向左移动,跳过一个元素,如果左边没有元素,则忽略此操作。4、R,将光标向右移动,跳过一个元素,如果右边没有元素,则忽略此操作。5、Q k,假设此刻光标之前的序列为 a1,a2,…,an,输出 max1≤i≤kSi,其中 Si=a1+a2+...+ai。
2023-07-03 14:29:22
178
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人