
LeeCode题库
文章平均质量分 68
LeeCode题库
苦学AI的小猪
小小大二学生一枚,分享自己的做题和学习历程。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeeCode题库第2516题
给你一个由字符'a''b''c'组成的字符串s和一个非负整数k。每分钟,你可以选择取走s还是的那个字符。你必须取走每种字符k个,返回需要的分钟数;如果无法取到,则返回-1。8从 s 的左侧取三个字符,现在共取到两个字符 'a' 、一个字符 'b'。从 s 的右侧取五个字符,现在共取到四个字符 'a' 、两个字符 'b' 和两个字符 'c'。共需要 3 + 5 = 8 分钟。可以证明需要的最少分钟数是 8。-1无法取到一个字符 'b' 或者 'c',所以返回 -1。'a''b''c'原创 2025-04-10 17:07:43 · 431 阅读 · 0 评论 -
LeeCode题库第1838题
元素的是该元素在一个数组中出现的次数。给你一个整数数组nums和一个整数k。在一步操作中,你可以选择nums的一个下标,并将该下标对应元素的值增加1。执行最多k次操作后,返回数组中最高频元素的。3对第一个元素执行 3 次递增操作,对第二个元素执 2 次递增操作,此时 nums = [4,4,4]。4 是数组中最高频元素,频数是 3。2存在多种最优解决方案:- 对第一个元素执行 3 次递增操作,此时 nums = [4,4,8,13]。4 是数组中最高频元素,频数是 2。原创 2025-04-10 16:02:36 · 662 阅读 · 0 评论 -
LeeCode题库第2779题
给你一个下标从开始的整数数组nums和一个整数k。inums[i]数组的定义为数组中由相等元素组成的最长子序列的长度。对数组nums执行上述操作任意次后,返回数组可能取得的美丽值。你能对每个下标执行此操作。数组的定义是:经由原数组删除一些元素(也可能不删除)得到的一个新数组,且在此过程中剩余元素的顺序不发生改变。3在这个示例中,我们执行下述操作:- 选择下标 1 ,将其替换为 4(从范围 [4,8] 中选出),此时 nums = [4,4,1,2]。原创 2025-04-08 14:52:44 · 446 阅读 · 0 评论 -
LeeCode题库第2730题
给你一个下标从开始的字符串s,这个字符串只包含0到9的数字字符。如果一个字符串t中至多有一对相邻字符是相等的,那么称这个字符串t是。例如,"0010""002020""0123""2002"和"54944"是半重复字符串,而"00101022"(相邻的相同数字对是 00 和 22)和(相邻的相同数字对是 11 和 88)不是半重复字符串。请你返回s中最长子字符串 的长度。4最长的半重复子字符串是 "5223"。整个字符串 "52233" 有两个相邻的相同数字对 22 和 33,但最多只能选取一个。原创 2025-04-08 14:36:39 · 525 阅读 · 0 评论 -
LeeCode题库第1658题
给你一个整数数组nums和一个整数x。每一次操作时,你应当移除数组nums最左边或最右边的元素,然后从x中减去该元素的值。请注意,需要数组以供接下来的操作使用。如果可以将x减到0,返回;否则,返回-1。2最佳解决方案是移除后两个元素,将 x 减到 0。-15最佳解决方案是移除后三个元素和前两个元素(总共 5 次操作),将 x 减到 0。原创 2025-04-07 14:56:42 · 262 阅读 · 0 评论 -
LeeCode题库第1004题
给定一个二进制数组nums和一个整数k,假设最多可以翻转k个0,则返回执行操作后数组中连续1的最大个数。6,1,1,1,1,粗体数字从 0 翻转到 1,最长的子数组长度为 6。10[0,0,1,1,,1,1,1,粗体数字从 0 翻转到 1,最长的子数组长度为 10。0。原创 2025-04-07 14:21:44 · 420 阅读 · 0 评论 -
LeeCode题库第2024题
一位老师正在出一场由n道判断题构成的考试,每道题的答案为 true (用'T'表示)或者 false (用'F'表示)。老师想增加学生对自己做出答案的不确定性,方法是有结果的题数。(也就是连续出现 true 或者连续出现 false)。给你一个字符串answerKey,其中是第i个问题的正确结果。除此以外,还给你一个整数k'T''F''T''F'请你返回在不超过k次操作的情况下,连续'T'或者'F'的数目。4我们可以将两个 'F' 都变为 'T' ,得到 answerKey = "原创 2025-04-06 16:51:00 · 501 阅读 · 0 评论 -
LeeCode题库第2958题
给你一个整数数组nums和一个整数k。一个元素x在数组中的指的是它在数组中的出现次数。如果一个数组中所有元素的频率都k,那么我们称这个数组是数组。请你返回nums中子数组的长度。指的是一个数组中一段连续非空的元素序列。6最长好子数组是 [1,2,3,1,2,3] ,值 1 ,2 和 3 在子数组中的频率都没有超过 k = 2。[2,3,1,2,3,1] 和 [3,1,2,3,1,2] 也是好子数组。最长好子数组的长度为 6。2。原创 2025-04-06 16:25:03 · 700 阅读 · 0 评论 -
LeeCode题库第二十七题
本题为移除与val相同的元素,类似于题库第二十六题,但比起来更加简单,如果x和val相等则直接跳过,否则填入x,cur+1,循环完成后返回即可。你的函数应该返回 k = 5,并且 nums 中的前五个元素为 0,0,1,3,4。// 排序 nums 的前 k 个元素。你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。如果所有的断言都通过,你的解决方案将会。原创 2025-02-20 17:29:03 · 877 阅读 · 0 评论 -
LeeCode题库第1695题
给你一个正整数数组nums,请你从中删除一个含有的子数组删除子数组的就是子数组各元素之。返回子数组可获得的。如果数组b是数组a的一个连续子序列,即如果它等于,那么它就是a的一个子数组。17最优子数组是 [2,4,5,6]8最优子数组是 [5,2,1] 或 [1,2,5]原创 2025-04-05 21:35:32 · 343 阅读 · 0 评论 -
LeeCode题库第904题
你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组fruits表示,其中fruits[i]是第i棵树上的水果。你想要尽可能多地收集水果。给你一个整数数组fruits,返回你可以收集的水果的数目。fruits = [3可以采摘全部 3 棵树。3可以采摘 [1,2,2] 这三棵树。如果从第一棵树开始采摘,则只能采摘 [0,1] 这两棵树。4可以采摘 [2,3,2,2] 这四棵树。如果从第一棵树开始采摘,则只能采摘 [1,2] 这两棵树。,3,3,4]5。原创 2025-04-05 21:22:14 · 446 阅读 · 0 评论 -
LeeCode题库第1208题
给你两个长度相同的字符串,s和t。将s中的第i个字符变到t中的第i个字符需要的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。用于变更字符串的最大预算是maxCost。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不完全的。如果你可以将s的子字符串转化为它在t中对应的子字符串,则返回可以转化的最大长度。如果s中没有子字符串可以转化成t中对应的子字符串,则返回0。3s中的"abc" 可以变为 "bcd"。开销为 3,所以最大长度为 3。1。原创 2025-04-03 14:46:27 · 372 阅读 · 0 评论 -
LeeCode题库第3090题
求每个字符最多出现两次的子字符串的最大长度,我们可以用不定长滑动窗口的思想来解决这个问题,不断维护窗口的左端点和右端点。用一个哈希表来记录每一个字符出现的次数,每当遍历到其中一个字符时,该字符出现的次数加一,如果出现次数大于2则不断更新左端点,直至出现次数小于等于2,每次遍历时更新ans为最大值,最终返回即可。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。,请找出满足每个字符最多出现两次的最长子字符串,并返回该子字符串的。原创 2025-04-01 14:46:10 · 490 阅读 · 0 评论 -
LeeCode题库第1652题
当k不等于0时,第i个数字都是由其前或后的数字之和来替换,这样我们可以考虑使用滑动窗口来解决问题。初始化r,当k大于0时为k+1,因为k大于0时为该数字后面k个数字的和;当k小于0时为n,因为k小于0时为前k个数字的和。取k为k的绝对值,s为对应的k个数字的和。在循环中,每次更新ans对应下标的值,更新s和r的值,最终返回ans即可。每个数字都被接下来 3 个数字之和替换。解密后的密码为 [7+1+4, 1+4+5, 4+5+7, 5+7+1]。解密后的密码为 [3+9, 2+3, 4+2, 9+4]。原创 2025-04-01 14:19:08 · 538 阅读 · 0 评论 -
LeeCode题库第1052题
这题要求返回一天中感到满意的最多顾客数,这是一个典型的滑动窗口问题。如果grumpy[i]为0说明老板不生气,直接将顾客值加入到total中,如果为1则说明老板生气,则将此时的顾客值加入到cur中。cur为老板生气时的顾客值,通过不断的调整,整个窗口的长度始终为minutes,但只有窗口中grumpy[i]为1的时候会被加入到cur,最终返回total+ans即可。当书店老板生气时,那一分钟的顾客就会不满意,若老板不生气则顾客是满意的。书店老板知道一个秘密技巧,能抑制自己的情绪,可以让自己连续。原创 2025-03-31 11:35:30 · 596 阅读 · 0 评论 -
LeeCode题库第1423题
这题要求每次从数组头或尾选一个元素,这样子实现其实很麻烦,不妨换个思路,一共要选k个元素,这些元素分在数组的两头,那么求得数组总和减去中间一定数量元素的最小和就是所要的结果,m为中间元素的数量。第一次行动,不管拿哪张牌,你的点数总是 1。但是,先拿最右边的卡牌将会最大化你的可获得点数。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿。你无法拿到中间那张卡牌,所以可以获得的最大点数为 1。你必须拿起所有卡牌,可以获得的点数为所有卡牌的点数之和。你的点数就是你拿到手中的所有卡牌的点数之和。原创 2025-03-23 20:46:16 · 664 阅读 · 0 评论 -
LeeCode题库第2461题
先计算前n-1个元素的和以及出现的次数分别存放于cur和cnt中,之后不断遍历进出滑动窗口的元素,如果cnt长度为k说明符合条件,则更新最大值ans,最后返回ans即可。因为 15 是满足全部条件的所有子数组中的最大子数组和,所以返回 15。返回满足题面要求的最大子数组和。- [2,9,9] 不满足全部条件,因为元素 9 出现重复。- [9,9,9] 不满足全部条件,因为元素 9 出现重复。- [4,4,4] 不满足全部条件,因为元素 4 出现重复。- [4,2,9] 满足全部条件,和为 15。原创 2025-03-21 20:23:36 · 552 阅读 · 0 评论 -
LeeCode题库第五十八题
单词的长度。原创 2025-03-20 21:40:50 · 612 阅读 · 0 评论 -
LeeCode题库第五十七题
我们可以利用left,right两个变量为插入区间newInterval的左右两端,利用placed作为标志变量,如果此时遍历到的li大于right说明插入区间要完全小于此时遍历到的区间,如果为False则插入区间并将标志变量placed设为True,如果此时遍历的区间右端点ri小于left说明此时遍历的区间完全小于要插入的区间,则将此时遍历的区间插入到ans数组中,否则说明区间有重叠部分那么更新left和right的值,如果最后没把区间插入得话,则在循环结束后加入到ans中。表示另一个区间的开始和结束。原创 2025-03-20 21:31:06 · 605 阅读 · 0 评论 -
LeeCode题库第2841题
如果cnt的长度大于m,则更新ans的值,之后将out从s中减去,如果out的次数减为0的话删除此元素,最终返回ans即可。分别为 [5, 9, 9] ,[9, 9, 2] ,[9, 2, 4] ,[2, 4, 5] 和 [4, 5, 4]。这些子数组中,和最大的是 [5, 9, 9] ,和为 23。分别为 [2, 6, 7, 3] ,[6, 7, 3, 1] 和 [7, 3, 1, 7]。这些子数组中,和最大的是 [2, 6, 7, 3] ,和为 18。所以不存在几乎唯一子数组,最大和为 0。原创 2025-03-19 21:23:33 · 604 阅读 · 0 评论 -
LeeCode题库第五十六题
这题要求返回一个不重叠的区间数组,首先将interval里每一个元素按照子列表的第一个元素进行排序,之后遍历interval数组,如果ans为空或者没有重叠部分则加入此时的子列表p,如果有重叠部分则将ans最后一个子列表的第二个元素与此时的p[1]进行比较,并选择最大值进行更改,最终返回ans即可。区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。区间 [1,4] 和 [4,5] 可被视为重叠区间。请你合并所有重叠的区间,并返回。原创 2025-03-18 21:31:37 · 1001 阅读 · 0 评论 -
LeeCode题库第五十五题
这题要求判断是否能达到最后一个下标,利用mx变量来记录此时能到达的最远距离,在遍历的过程中,首先判断i与mx的关系,如果下标i大于mx说明无法到达此时的i则返回False;不断更新mx值,如果全程没有返回False,则最后返回True。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。判断你是否能够到达最后一个下标,如果可以,返回。原创 2025-03-18 21:21:19 · 356 阅读 · 0 评论 -
LeeCode题库第2379题
这题要求得到K个黑块的最小涂色次数,不妨想一下,不就是求长度为K的子数组里白块的最小数目嘛。首先初始化ans和cnt为长度为K的子数组里白块的个数,之后通过遍历不断变化cnt求得最小值返回即可。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。一种得到 7 个连续黑色块的方法是把第 0 ,3 和 4 个块涂成黑色。可以证明无法用少于 3 次操作得到 7 个连续的黑块。不需要任何操作,因为已经有 2 个连续的黑块。分别表示白色和黑色。原创 2025-03-17 21:39:39 · 536 阅读 · 0 评论 -
LeeCode题库第1343题
这题要求返回长度为K且平均值要大于等于阈值的子数组数目,是一个典型的可以使用滑动窗口方法解决的题目。遍历数组arr的过程中,如果子数组的长度小于K,则continue继续遍历直至此时窗口长度达到K。记录此时数量总和total,cur减去窗口最左边元素,之后判断数组平均值,如果大于等于thres阈值,那么num加一,最终返回num即可。子数组 [2,5,5],[5,5,5] 和 [5,5,8] 的平均值分别为 4,5 和 6。其他长度为 3 的子数组的平均值都小于 4 (threshold 的值)。原创 2025-03-17 21:24:32 · 552 阅读 · 0 评论 -
LeeCode题库第1456题
这题要求定长子串中元音的最大数目,当n小于k时,说明字符串的长度小于k则输出0,之后利用滑动窗口的思想,如果子字符串长度不到k则continue,达到k则计算子串中元音的最大数目,达到数目后下次遍历之前要把最左边的字符移除子串,最终返回ans即可。"lee"、"eet" 和 "ode" 都包含 2 个元音字母。任意长度为 2 的子字符串都包含 2 个元音字母。的单个子字符串中可能包含的最大元音字母数。子字符串 "iii" 包含 3 个元音字母。原创 2025-03-14 19:50:31 · 745 阅读 · 0 评论 -
LeeCode题库第五十四题
给你一个m行n列的矩阵matrix,请按照,返回矩阵中的所有元素。原创 2025-03-13 20:57:35 · 277 阅读 · 0 评论 -
LeeCode题库第五十三题
给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。6连续子数组 [4,-1,2,1] 的和最大,为 6。nums = [1]123如果你已经实现复杂度为O(n)的解法,尝试使用更为精妙的求解。原创 2025-03-13 19:00:38 · 308 阅读 · 0 评论 -
LeeCode题库第五十二题
如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!这题整体上同第五十一题,不同的地方是只需返回不同方案的数量,在r等于n时,将ans加一即可,注意ans为全局变量,并且不需标记皇后在每一行对应的列位置。的棋盘上,并且使皇后彼此之间不能相互攻击。如上图所示,4 皇后问题存在两个不同的解法。不同的解决方案的数量。原创 2025-03-12 20:11:41 · 504 阅读 · 0 评论 -
LeeCode题库第五十一题
这题和第五十二题都是N皇后的问题,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子,所以每一行、每一列和每一斜线都只能有一个皇后,因为最后需要返回不同的N皇后问题的解决方案。我们利用queens数组来记录每一行皇后所在的列,col来表示每一列是否被占用,diag1表示从左上到右下对角线是否被占用,diag2则表示从左下到右上是否被占用。dfs回溯过程中,如果长度已经为n则加入此时的方案,for循环遍历col,如果此列还未添加皇后那么将此处添加皇后,继续回溯,回溯退出后返回现场。分别代表了皇后和空位。原创 2025-03-12 20:03:13 · 597 阅读 · 0 评论 -
LeeCode题库第五十题
如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!,每个幂相当于不断相乘一、二、四、八次方,但不是每一个都要去乘,可以联想二进制8421,此时二进制位为1时说明要成此时x的幂,之后x每轮翻倍,循环结束后返回即可。原创 2025-03-11 22:08:17 · 471 阅读 · 0 评论 -
LeeCode题库第四十九题
把每种字母出现次数都相同的字符串都加入同一组中,例如aab、aba、baa可以分到同一组中,而bba不行。把aab、aba、baa排序可以得到aab,而其他字符串不行。于是可以利用哈希表,字符串排序后相同的字符串分到一组,sorted将字符串按字母序分成一个个的字符,所以需要使用join将拆开的字符连接成字符串,排序后相同的字符串加入到同一组,最后将字典的值加到列表中返回即可。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。原创 2025-03-11 21:53:20 · 598 阅读 · 0 评论 -
LeeCode题库第四十八题
如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!来完成旋转:将矩阵分成若干 4 个一组的元素块,每组元素通过临时变量。的位置,同时通过交换操作完成整个矩阵的旋转。的功能,且是原地修改矩阵,不需要额外空间。依次交换位置,从而实现旋转。具体来说,对于每个元素。旋转图像,这意味着你需要直接修改输入的二维矩阵。请你将图像顺时针旋转 90 度。这段代码实现了将一个。使用另一个矩阵来旋转图像。原创 2025-03-10 21:16:17 · 462 阅读 · 0 评论 -
LeeCode题库第四十七题
题目要求生成不重复的全排列,首先对nums进行排序,避免产生相同的排序;path表示此时的排列,on_path表示此时的数字是否已经使用。dfs回溯算法,如果排列长度已经达到n,则填入到ans中,for循环遍历过程中,如果已经使用过或者此元素和前一个元素相等并且前一个元素未被使用,说明会出现重复排列则continue,否则加入path中,将此时的元素使用情况置为True,继续深度遍历。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。原创 2025-03-10 21:06:52 · 456 阅读 · 0 评论 -
LeeCode题库第四十六题
这题是全排列的第一题,我们利用回溯的算法来解决这个问题。first表示此时需要固定的位置,如果first等于n说明所有的位置都已经固定了,将此时的排列加入到res即可。之后遍历first到n-1的所有位置,对于每个位置i交换i和first的位置;并继续递归下一个位置,递归返回后,撤销替换操作,尝试其他可能的排列。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!给定一个不含重复数字的数组。原创 2025-03-09 22:07:22 · 451 阅读 · 0 评论 -
LeeCode题库第四十五题
这题需要贪心的算法思想,选择能够跳到的最远的位置。首先初始化ans、cur_right、next_right三个变量,ans为移动的步数,cur_next为当时能跳跃到的最远位置,next_right为下一步能跳到的最远位置。之后进行遍历,注意不需遍历最后一个元素,因为任务已经完成。如果当前位置i已经到了此时能到达的最远位置,那么需要进行一次跳跃,更新此时的cur_next的值,并增加跳跃次数。从下标为 0 跳到下标为 1 的位置,跳。原创 2025-03-09 21:44:15 · 575 阅读 · 0 评论 -
LeeCode题库第四十四题
可匹配任意单个字符,*可匹配任意字符序列,i为序列s的剩余长度,j为序列p的剩余长度。如果i小于0j也小于0,说明字符串已经匹配结束了 ,返回True;如果此时对应的p序列的字符不是*说明无法匹配则返回False,否则继续递归。如果i不小于0而j小于0了说明序列s还未成功匹配,返回False;如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。' 可以匹配 'c', 但第二个 'a' 无法匹配 'b'。'*' 可以匹配任意字符串。原创 2025-03-04 20:37:20 · 602 阅读 · 0 评论 -
LeeCode题库第四十三题
这道题要求不使用任何的内置库或转换为整数进行计算,利用一个addStrings函数进行加和。遍历一个字符串数字的每一位与另一个字符串数字的每一位进行相乘。但是如果高位的话需要加在curr数组前方加0,是为了保证反转后得到的字符串对应的数字的数量级是不变的,product为当前位相乘得到的数字,取余10得到的为最高位数字,add为进位数字。addStrings为辅助函数,实际的完成方式与主函数类似。的乘积,它们的乘积也表示为字符串形式。原创 2025-03-04 19:38:59 · 475 阅读 · 0 评论 -
LeeCode题库第四十二题
这题可以看作一个双指针问题,使用两个数组来保存从左向右和从右向左的最大值,通过遍历调整这两个数组的值,之后利用zip函数,求高度差,因为接的雨水就是较低的柱子和此时h的差值,遍历过程中ans不管加就可以了。愿你的代码之路越走越顺,生活充满阳光!上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。原创 2025-03-03 22:40:56 · 692 阅读 · 0 评论 -
LeeCode题库第四十一题
求缺失的第一个整数,如果nums[i]对应的元素小于0或者大于n将此时的值置为0因为此时这个元素肯定不是缺失的正数。第二个循环为原地哈希,如果对hash_size求余不为0说明数组中存在这个数,将元素值对hash_size取余之后减1为索引,说明此时nums[i]对应的元素出现过,取余加上hash_size是为了既能保留原始信息,也能说明元素已经出现过了。最后遍历数组,如果条件不符合则返回i+1为缺失的整数,因为i为索引。愿你的代码之路越走越顺,生活充满阳光!,请你找出其中没有出现的最小的正整数。原创 2025-03-03 22:31:06 · 393 阅读 · 0 评论 -
LeeCode题库第四十题
这题类似于题库第三十九题,但是要求解集中不能出现重复的组合,于是排序之后需要判断此时递归到的元素是否和前一个元素相等,i与start相等的时候,当前i为第一层级即使与前一个元素相等也不需跳过,之后不断进行递归和恢复现场即可。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!中的每个数字在每个组合中只能使用。给定一个候选人编号的集合。解集不能包含重复的组合。中所有可以使数字和为。原创 2025-03-02 22:33:17 · 660 阅读 · 0 评论