自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeeCode671二叉树中第二小的结点

给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为2或0。如果一个节点有两个子节点的话,那么该节点的值等于两个子节点中较小的一个。更正式地说,即总成立。给出这样的一个二叉树,你需要输出所有节点中的。如果第二小的值不存在的话,输出 -15最小的值是 2 ,第二小的值是 5。-1最小的值是 2, 但是不存在第二小的值。[1, 25]

2025-06-24 21:35:09 326

原创 LeeCode404左叶子之和

给定二叉树的根节点root,返回所有左叶子之和。输入:输出:24解释:在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24root = [1]0[1, 1000]

2025-06-24 21:09:24 242

原创 LeeCode LCP44开幕式焰火

力扣挑战赛」开幕式开始了,空中绽放了一颗二叉树形的巨型焰火。给定一棵二叉树root代表焰火,节点值表示巨型焰火这一位置的颜色种类。请帮小扣计算巨型焰火有多少种不同的颜色。3解释:焰火中有 3 个不同的颜色,值分别为 1、2、31解释:焰火中仅出现 1 个颜色,值为 3。

2025-06-23 14:09:49 379

原创 LeeCode872叶子相似的树

请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个。举个例子,如上图所示,给定一棵叶值序列为的树。如果有两棵二叉树的叶值序列是相同,那么我们就认为它们是叶相似的。如果给定的两个根结点分别为root1和root2的树是叶相似的,则返回true;否则返回false。

2025-06-23 13:50:29 631

原创 LeeCode2566替换一个数字后的最大差值

给你一个整数num。你知道 Danny Mittal 会偷偷将0到9中的一个数字成另一个数字。请你返回将num中数字进行替换后,得到的最大值和最小值的差为多少。d1d2numsd1d2num99009为了得到最大值,我们将数字 1 替换成数字 9 ,得到 99899。为了得到最小值,我们将数字 1 替换成数字 0 ,得到 890。两个数字的差值为 99009。num = 9099可以得到的最大值是 99(将 0 替换成 9),最小值是 0(将 9 替换成 0)。所以我们得到 99。

2025-06-22 22:46:32 295

原创 LeeCode2138将字符串拆分为若干长度为k的组

字符串s可以按下述步骤划分为若干长度为kkkkfill注意,在去除最后一个组的填充字符fill(如果存在的话)并按顺序连接所有的组后,所得到的字符串应该是s。给你一个字符串s,以及每组的长度k和一个用于填充的字符fill,按上述步骤处理之后,返回一个字符串数组,该数组表示s分组后。前 3 个字符是 "abc" ,形成第一组。接下来 3 个字符是 "def" ,形成第二组。最后 3 个字符是 "ghi" ,形成第三组。由于所有组都可以由字符串中的字符完全填充,所以不需要使用填充字符。

2025-06-22 22:30:15 382

原创 LeeCode145二叉树的后序遍历

给你一棵二叉树的根节点root,返回其节点值的。

2025-06-19 21:35:06 367

原创 LeeCode94二叉树的中序遍历

二叉树的遍历对于理解数据结构树具有非常重要的意义,本篇文章面向初学数据结构的同学讲解二叉树的中序遍历。二叉树的中序遍历,即对于每一个节点,先访问左子树,再访问根节点,最后访问右子树。以示例一为实例,先访问根节点1的左子树,节点1的左子树为空,则访问根点1,进而访问节点1的右节点2,对于节点2先访问节点2的左子树,进而访问节点2,进而访问节点2的右节点,右节点为空,则跳过,所有节点都经遍历,那么遍历结束。愿你的代码之路越走越顺,生活充满阳光!

2025-06-19 21:23:33 321

原创 LeeCode144二叉树的前序遍历

给你二叉树的根节点root,返回它节点值的遍历。

2025-06-19 21:12:52 430

原创 LeeCode2294划分数组使最大值为K

给你一个整数数组nums和一个整数k。你可以将nums划分成一个或多个,使nums中的每个元素都出现在一个子序列中。在满足每个子序列中最大值和最小值之间的差值最多为k的前提下,返回需要划分的子序列数目。本质是一个序列,可以通过删除另一个序列中的某些元素(或者不删除)但不改变剩下元素的顺序得到。2可以将 nums 划分为两个子序列 [3,1,2] 和 [6,5]。第一个子序列中最大值和最小值的差值是 3 - 1 = 2。第二个子序列中最大值和最小值的差值是 6 - 5 = 1。

2025-06-19 20:51:13 676

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

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

原创 LeeCode题库第2779题

给你一个下标从开始的整数数组nums和一个整数k。inums[i]数组的定义为数组中由相等元素组成的最长子序列的长度。对数组nums执行上述操作任意次后,返回数组可能取得的美丽值。你能对每个下标执行此操作。数组的定义是:经由原数组删除一些元素(也可能不删除)得到的一个新数组,且在此过程中剩余元素的顺序不发生改变。3在这个示例中,我们执行下述操作:- 选择下标 1 ,将其替换为 4(从范围 [4,8] 中选出),此时 nums = [4,4,1,2]。

2025-04-08 14:52:44 472

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

原创 LeeCode题库第1658题

给你一个整数数组nums和一个整数x。每一次操作时,你应当移除数组nums最左边或最右边的元素,然后从x中减去该元素的值。请注意,需要数组以供接下来的操作使用。如果可以将x减到0,返回;否则,返回-1。2最佳解决方案是移除后两个元素,将 x 减到 0。-15最佳解决方案是移除后三个元素和前两个元素(总共 5 次操作),将 x 减到 0。

2025-04-07 14:56:42 292

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

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

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

原创 LeeCode题库第1695题

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

2025-04-05 21:35:32 374

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

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

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

原创 LeeCode题库第3090题

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

2025-04-01 14:46:10 509

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

原创 LeeCode题库第1052题

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

2025-03-31 11:35:30 627

原创 LeeCode题库第1423题

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

2025-03-23 20:46:16 694

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

原创 LeeCode题库第五十八题

单词的长度。

2025-03-20 21:40:50 641

原创 LeeCode题库第五十七题

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

2025-03-20 21:31:06 627

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

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

原创 LeeCode题库第五十五题

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

2025-03-18 21:21:19 383

原创 LeeCode题库第2379题

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

2025-03-17 21:39:39 569

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

原创 LeeCode题库第643题

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

2025-03-14 20:00:19 603

原创 LeeCode题库第1456题

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

2025-03-14 19:50:31 774

原创 LeeCode题库第五十四题

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

2025-03-13 20:57:35 294

原创 LeeCode题库第五十三题

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

2025-03-13 19:00:38 335

原创 LeeCode题库第五十二题

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

2025-03-12 20:11:41 527

原创 LeeCode题库第五十一题

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

2025-03-12 20:03:13 627

空空如也

空空如也

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

TA关注的人

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