自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 收藏
  • 关注

原创 LeeCode题库第1695题

给你一个正整数数组nums,请你从中删除一个含有的子数组删除子数组的就是子数组各元素之。返回子数组可获得的。如果数组b是数组a的一个连续子序列,即如果它等于,那么它就是a的一个子数组。17最优子数组是 [2,4,5,6]8最优子数组是 [5,2,1] 或 [1,2,5]

2025-04-05 21:35:32 75

原创 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 334

原创 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 350

原创 LeeCode题库第1493题

这题要求返回最长的且只包含1的非空子数组的长度,我们利用right和left记录全一数组的两个端点,利用record记录上一个0的位置。当record不为-1时,说明已经出现过0,则需更新ans的值,更新left为上一次遇到的0的右边,之后更新record为已知的最靠右的0的位置。删掉位置 4 的数字后,[0,1,1,1,1,1,0,1] 的最长全 1 子数组为 [1,1,1,1,1]。请你在删掉元素的结果数组中,返回最长的且只包含 1 的非空子数组的长度。如果不存在这样的子数组,请返回 0。

2025-04-03 14:32:07 424

原创 LeeCode题库第3090题

求每个字符最多出现两次的子字符串的最大长度,我们可以用不定长滑动窗口的思想来解决这个问题,不断维护窗口的左端点和右端点。用一个哈希表来记录每一个字符出现的次数,每当遍历到其中一个字符时,该字符出现的次数加一,如果出现次数大于2则不断更新左端点,直至出现次数小于等于2,每次遍历时更新ans为最大值,最终返回即可。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。,请找出满足每个字符最多出现两次的最长子字符串,并返回该子字符串的。

2025-04-01 14:46:10 471

原创 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 521

原创 LeeCode题库第1052题

这题要求返回一天中感到满意的最多顾客数,这是一个典型的滑动窗口问题。如果grumpy[i]为0说明老板不生气,直接将顾客值加入到total中,如果为1则说明老板生气,则将此时的顾客值加入到cur中。cur为老板生气时的顾客值,通过不断的调整,整个窗口的长度始终为minutes,但只有窗口中grumpy[i]为1的时候会被加入到cur,最终返回total+ans即可。当书店老板生气时,那一分钟的顾客就会不满意,若老板不生气则顾客是满意的。书店老板知道一个秘密技巧,能抑制自己的情绪,可以让自己连续。

2025-03-31 11:35:30 578

原创 LeeCode题库第1423题

这题要求每次从数组头或尾选一个元素,这样子实现其实很麻烦,不妨换个思路,一共要选k个元素,这些元素分在数组的两头,那么求得数组总和减去中间一定数量元素的最小和就是所要的结果,m为中间元素的数量。第一次行动,不管拿哪张牌,你的点数总是 1。但是,先拿最右边的卡牌将会最大化你的可获得点数。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿。你无法拿到中间那张卡牌,所以可以获得的最大点数为 1。你必须拿起所有卡牌,可以获得的点数为所有卡牌的点数之和。你的点数就是你拿到手中的所有卡牌的点数之和。

2025-03-23 20:46:16 645

原创 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 525

原创 LeeCode题库第五十八题

单词的长度。

2025-03-20 21:40:50 583

原创 LeeCode题库第五十七题

我们可以利用left,right两个变量为插入区间newInterval的左右两端,利用placed作为标志变量,如果此时遍历到的li大于right说明插入区间要完全小于此时遍历到的区间,如果为False则插入区间并将标志变量placed设为True,如果此时遍历的区间右端点ri小于left说明此时遍历的区间完全小于要插入的区间,则将此时遍历的区间插入到ans数组中,否则说明区间有重叠部分那么更新left和right的值,如果最后没把区间插入得话,则在循环结束后加入到ans中。表示另一个区间的开始和结束。

2025-03-20 21:31:06 574

原创 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 579

原创 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 956

原创 LeeCode题库第五十五题

这题要求判断是否能达到最后一个下标,利用mx变量来记录此时能到达的最远距离,在遍历的过程中,首先判断i与mx的关系,如果下标i大于mx说明无法到达此时的i则返回False;不断更新mx值,如果全程没有返回False,则最后返回True。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。判断你是否能够到达最后一个下标,如果可以,返回。

2025-03-18 21:21:19 336

原创 LeeCode题库第2379题

这题要求得到K个黑块的最小涂色次数,不妨想一下,不就是求长度为K的子数组里白块的最小数目嘛。首先初始化ans和cnt为长度为K的子数组里白块的个数,之后通过遍历不断变化cnt求得最小值返回即可。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。一种得到 7 个连续黑色块的方法是把第 0 ,3 和 4 个块涂成黑色。可以证明无法用少于 3 次操作得到 7 个连续的黑块。不需要任何操作,因为已经有 2 个连续的黑块。分别表示白色和黑色。

2025-03-17 21:39:39 525

原创 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 529

原创 LeeCode题库第643题

这题同样也是滑动窗口的思想,cur为当前k个数的和,ans为最大值。利用滑动窗口的方法可以将子数组中保持在k个,这样只需每次移入移出即可,最终返回最大的ans即可。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!最大平均数 (12-5-6+50)/4 = 51/4 = 12.75。的连续子数组,并输出该最大平均数。的答案都将被视为正确答案。个元素组成的整数数组。请你找出平均数最大且。

2025-03-14 20:00:19 545

原创 LeeCode题库第1456题

这题要求定长子串中元音的最大数目,当n小于k时,说明字符串的长度小于k则输出0,之后利用滑动窗口的思想,如果子字符串长度不到k则continue,达到k则计算子串中元音的最大数目,达到数目后下次遍历之前要把最左边的字符移除子串,最终返回ans即可。"lee"、"eet" 和 "ode" 都包含 2 个元音字母。任意长度为 2 的子字符串都包含 2 个元音字母。的单个子字符串中可能包含的最大元音字母数。子字符串 "iii" 包含 3 个元音字母。

2025-03-14 19:50:31 718

原创 LeeCode题库第五十四题

给你一个m行n列的矩阵matrix,请按照,返回矩阵中的所有元素。

2025-03-13 20:57:35 261

原创 LeeCode题库第五十三题

给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。6连续子数组 [4,-1,2,1] 的和最大,为 6。nums = [1]123如果你已经实现复杂度为O(n)的解法,尝试使用更为精妙的求解。

2025-03-13 19:00:38 295

原创 LeeCode题库第五十二题

如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!这题整体上同第五十一题,不同的地方是只需返回不同方案的数量,在r等于n时,将ans加一即可,注意ans为全局变量,并且不需标记皇后在每一行对应的列位置。的棋盘上,并且使皇后彼此之间不能相互攻击。如上图所示,4 皇后问题存在两个不同的解法。不同的解决方案的数量。

2025-03-12 20:11:41 483

原创 LeeCode题库第五十一题

这题和第五十二题都是N皇后的问题,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子,所以每一行、每一列和每一斜线都只能有一个皇后,因为最后需要返回不同的N皇后问题的解决方案。我们利用queens数组来记录每一行皇后所在的列,col来表示每一列是否被占用,diag1表示从左上到右下对角线是否被占用,diag2则表示从左下到右上是否被占用。dfs回溯过程中,如果长度已经为n则加入此时的方案,for循环遍历col,如果此列还未添加皇后那么将此处添加皇后,继续回溯,回溯退出后返回现场。分别代表了皇后和空位。

2025-03-12 20:03:13 574

原创 LeeCode题库第五十题

如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!,每个幂相当于不断相乘一、二、四、八次方,但不是每一个都要去乘,可以联想二进制8421,此时二进制位为1时说明要成此时x的幂,之后x每轮翻倍,循环结束后返回即可。

2025-03-11 22:08:17 460

原创 LeeCode题库第四十九题

把每种字母出现次数都相同的字符串都加入同一组中,例如aab、aba、baa可以分到同一组中,而bba不行。把aab、aba、baa排序可以得到aab,而其他字符串不行。于是可以利用哈希表,字符串排序后相同的字符串分到一组,sorted将字符串按字母序分成一个个的字符,所以需要使用join将拆开的字符连接成字符串,排序后相同的字符串加入到同一组,最后将字典的值加到列表中返回即可。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。

2025-03-11 21:53:20 570

原创 OpenCV之颜色空间转换

OpenCV中提供了许多颜色空间转换的函数,例如从BGR转换为灰度图、HSV等,这些转换函数,通常使用cv2.cvtCOLOR(),而颜色空间转换的标志都以COLOR_开头。代码执行情况。

2025-03-10 22:29:55 374

原创 LeeCode题库第四十八题

如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!来完成旋转:将矩阵分成若干 4 个一组的元素块,每组元素通过临时变量。的位置,同时通过交换操作完成整个矩阵的旋转。的功能,且是原地修改矩阵,不需要额外空间。依次交换位置,从而实现旋转。具体来说,对于每个元素。旋转图像,这意味着你需要直接修改输入的二维矩阵。请你将图像顺时针旋转 90 度。这段代码实现了将一个。使用另一个矩阵来旋转图像。

2025-03-10 21:16:17 435

原创 LeeCode题库第四十七题

题目要求生成不重复的全排列,首先对nums进行排序,避免产生相同的排序;path表示此时的排列,on_path表示此时的数字是否已经使用。dfs回溯算法,如果排列长度已经达到n,则填入到ans中,for循环遍历过程中,如果已经使用过或者此元素和前一个元素相等并且前一个元素未被使用,说明会出现重复排列则continue,否则加入path中,将此时的元素使用情况置为True,继续深度遍历。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。

2025-03-10 21:06:52 432

原创 LeeCode题库第四十六题

这题是全排列的第一题,我们利用回溯的算法来解决这个问题。first表示此时需要固定的位置,如果first等于n说明所有的位置都已经固定了,将此时的排列加入到res即可。之后遍历first到n-1的所有位置,对于每个位置i交换i和first的位置;并继续递归下一个位置,递归返回后,撤销替换操作,尝试其他可能的排列。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!给定一个不含重复数字的数组。

2025-03-09 22:07:22 435

原创 LeeCode题库第四十五题

这题需要贪心的算法思想,选择能够跳到的最远的位置。首先初始化ans、cur_right、next_right三个变量,ans为移动的步数,cur_next为当时能跳跃到的最远位置,next_right为下一步能跳到的最远位置。之后进行遍历,注意不需遍历最后一个元素,因为任务已经完成。如果当前位置i已经到了此时能到达的最远位置,那么需要进行一次跳跃,更新此时的cur_next的值,并增加跳跃次数。从下标为 0 跳到下标为 1 的位置,跳。

2025-03-09 21:44:15 556

原创 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 581

原创 LeeCode题库第四十三题

这道题要求不使用任何的内置库或转换为整数进行计算,利用一个addStrings函数进行加和。遍历一个字符串数字的每一位与另一个字符串数字的每一位进行相乘。但是如果高位的话需要加在curr数组前方加0,是为了保证反转后得到的字符串对应的数字的数量级是不变的,product为当前位相乘得到的数字,取余10得到的为最高位数字,add为进位数字。addStrings为辅助函数,实际的完成方式与主函数类似。的乘积,它们的乘积也表示为字符串形式。

2025-03-04 19:38:59 457

原创 LeeCode题库第四十二题

这题可以看作一个双指针问题,使用两个数组来保存从左向右和从右向左的最大值,通过遍历调整这两个数组的值,之后利用zip函数,求高度差,因为接的雨水就是较低的柱子和此时h的差值,遍历过程中ans不管加就可以了。愿你的代码之路越走越顺,生活充满阳光!上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

2025-03-03 22:40:56 676

原创 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 383

原创 LeeCode题库第四十题

这题类似于题库第三十九题,但是要求解集中不能出现重复的组合,于是排序之后需要判断此时递归到的元素是否和前一个元素相等,i与start相等的时候,当前i为第一层级即使与前一个元素相等也不需跳过,之后不断进行递归和恢复现场即可。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!中的每个数字在每个组合中只能使用。给定一个候选人编号的集合。解集不能包含重复的组合。中所有可以使数字和为。

2025-03-02 22:33:17 647

原创 LeeCode题库第三十九题

本题可以利用递归,先将candidate数组排序,递归过程中,如果剩下的数字left为0则添加此时的路径,如果此时i已经为candidate数组最后一个元素或者剩下的数字left小于此时的candidate数组元素,则回退return。递归过程中先不断递归使得candidate最大,如果符合则将此时对应candidate数组的元素加入到path中,继续递归left,否则就pop掉此时的元素,继续进行遍历。如果至少一个数字的被选数量不同,则两种组合是不同的。7 也是一个候选, 7 = 7。

2025-03-02 20:01:57 544

原创 LeeCode题库第三十七题

如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!,使用深度优先搜索(DFS)和回溯算法来填充数独棋盘中的空白格。代码的核心逻辑是通过递归尝试在每个空白格中填入数字。如果填入的数字导致后续无解,则回溯并尝试其他数字;并提前返回,避免不必要的计算。最终,代码会修改输入的。编写一个程序,通过填充空格来解决数独问题。数独部分空格内已填入了数字,空白格用。,将其填充为一个有效的数独解。

2025-03-01 22:25:41 661

原创 LeeCode题库第三十八题

代码的初始条件是n为1直接返回字符1,紧接着从第二项开始生成,每一项都是对前一项的描述,先设置pre为say的第一个元素,如果后面元素和pre相同那么count加1,说明这个数字出现的次数多了1,如果不等,那么将次数和字符以列表的形式加入到列表中,每次子循环结束后将say变为cur_say,最后将列表转换为字符串输出即可。(RLE)是一种字符串压缩方法,其工作原理是通过将连续相同字符(重复两次或更多次)替换为字符重复次数(运行长度)和字符的串联。

2025-03-01 21:09:41 510

原创 LeeCode题库第三十六题

请你判断一个9 x 9的数独是否有效。只需要,验证已经填入的数字是否有效即可。1-91-91-93x3'.'board =trueboard =false除了第一行的第一个数字从改为以外,空格内其他数字均与 示例1 相同。但由于位于左上角的 3x3 宫内有两个 8 存在, 因此这个数独是无效的。1-9'.'

2025-02-27 21:36:17 762

原创 LeeCode题库第三十五题

这题实际上就是一个二分查找的问题,找到目标值返回其下标找不到则需要返回插入位置,因为数组是一个升序的排列数组,那这道题实际上就很简单了,利用开区间二分返回right即可。这题只要你对二分查找有着一定理解,这题很容易就做出来啦。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

2025-02-27 20:38:33 365

原创 LeeCode题库第三十四题

这道题让我们寻找排序数组中第一个和最后一个位置,我们首先写一个开区间二分查找便于在数组中查找target,如果数组中找到target,则说明存在起始和结束位置;如果找不到target则返回[-1,-1],代码中都有所体现。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!请你找出给定目标值在数组中的开始位置和结束位置。给你一个按照非递减顺序排列的整数数组。如果数组中不存在目标值。

2025-02-26 18:37:53 469

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除