
力扣
文章平均质量分 51
西柚与蓝莓
好了阿鹏
展开
-
1080. 根到叶路径上的不足节点(递归前后学习)
的每种可能的 “根-叶” 路径上值的总和全都小于给定的。,并返回最终二叉树的根节点。,请你同时删除树中所有。,就是没有子节点的节点。原创 2025-02-20 22:19:45 · 253 阅读 · 0 评论 -
LCR 050. 路径总和 III
不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。和等于 8 的路径有 3 条,如图所示。LCR 050. 路径总和 III。,求该二叉树里节点值之和等于。给定一个二叉树的根节点。原创 2025-02-20 20:33:00 · 310 阅读 · 0 评论 -
2641. 二叉树的堂兄弟节点 II
值为 7 的节点有两个堂兄弟,值分别为 1 和 10 ,所以值修改为 11。- 值为 10 的节点有一个堂兄弟,值为 7 ,所以值修改为 7。- 值为 1 的节点有一个堂兄弟,值为 7 ,所以值修改为 7。,一个节点的深度指的是从树根节点到这个节点经过的边数。- 值为 5 的节点没有堂兄弟,所以值修改为 0。- 值为 4 的节点没有堂兄弟,所以值修改为 0。- 值为 9 的节点没有堂兄弟,所以值修改为 0。- 值为 1 的节点没有堂兄弟,所以值修改为 0。请你返回修改值之后,树的根。原创 2025-02-11 20:38:20 · 235 阅读 · 0 评论 -
计数相关的题 Python 力扣
最后返回的时候的写法可以借鉴一下,非常简洁。解法:使用了类似冒泡排序的方式来进行排序,如果用堆的话,估计面试的时候不会有这个API来直接调,就先不管他的。"the", "is", "sunny" 和 "day" 是出现次数最多的四个单词,由于最多单词数打平,返回字典序最大的名字,也就是 Charlie。由于 Alice 发出单词数最多,所以我们返回 "Alice"。"i" 和 "love" 为出现次数最多的两个单词,均为2次。注意,按字母顺序 "i" 在 "love" 之前。,请你返回其中出现频率前。原创 2024-10-04 22:34:14 · 1220 阅读 · 0 评论 -
位运算练习题 力扣
题目给的数据的范围是-2的31次方到2的31次方-1。将每个元素都以二进制的格式相加,每一个出现了3次,就把这个数字消去,反之保留。需要注意的是,Python 中的整数是无限精度的,并且使用二进制补码表示负数。对于负整数,其二进制表示是对应的正整数的二进制表示取反后加 1,并在前面加上负号。题解:题目要求的是线性时间复杂度o(n)的算法且仅使用常量额外空间o(1)来解决此问题。当出现相同元素是我们使用二进制中的异或将相同的元素都消掉,然后就可以保留剩余只出现一次的数字了。找出那个只出现了一次的元素。原创 2024-10-03 19:38:35 · 762 阅读 · 0 评论 -
713. 乘积小于 K 的子数组 滑动窗口
8 个乘积小于 100 的子数组分别为:[10]、[5]、[2]、[6]、[10,5]、[5,2]、[2,6]、[5,2,6]。需要注意的是 [10,5,2] 并不是乘积小于 100 的子数组。,请你返回子数组内所有元素的乘积严格小于。为右边界的满足条件的子数组个数为。假设当前窗口的左右边界为。(窗口内元素乘积)小于。的连续子数组的数目。(长度为 1),一共。原创 2024-10-01 11:01:09 · 451 阅读 · 0 评论 -
594. 最长和谐子序列 滑动窗口
数组的子序列是一个由数组派生出来的序列,它可以通过删除一些元素或不删除元素、且不改变其余元素的顺序而得到。,请你在所有可能的子序列中找到最长的和谐子序列的长度。和谐数组是指一个数组里元素的最大值和最小值之间的差别。最长的和谐子序列是 [3,2,2,2,3]现在,给你一个整数数组。原创 2024-09-29 20:22:13 · 227 阅读 · 0 评论 -
506. 相对名次 哈希表
名次为 [1st, 2nd, 3rd, 4th, 5th]。名次为 [1st, 5th, 3rd, 2nd, 4th]。位运动员在比赛中的得分。的运动员得分最高,名次第。位运动员的获奖情况。原创 2024-09-28 09:34:21 · 349 阅读 · 0 评论 -
1013. 将数组分成和相等的三个部分 数组切分
会有这种例子出现,加大了题目的难度arr=[0,0,0,0],只有可以将其划分为三个和相等的。形式上,如果可以找出索引。就可以将数组三等分。原创 2024-09-27 22:56:04 · 348 阅读 · 0 评论 -
819. 最常见的单词 哈希表
"ball" 出现了两次(没有其他单词出现这么多次),因此它是段落中出现频率最高的非禁用词。并且尽管 "hit" 出现的次数更多,但它不能作为答案,因为它是禁用词。标点符号会被忽略(即使它们紧挨着单词,如 "ball,"),,返回出现频率最高的非禁用词。"hit" 出现了 3 次,但它是禁用词。请注意,段落中的单词不区分大小写,和一个表示禁用词的字符串数组。至少存在一个非禁用词,且答案。819. 最常见的单词。原创 2024-09-27 16:48:28 · 295 阅读 · 0 评论 -
500. 键盘行 哈希表 力扣 Python 难度指数:3
同一行的字母打印出来的单词。原创 2024-09-27 13:37:01 · 438 阅读 · 0 评论 -
21. 合并两个有序链表 复杂一点的递归 python
新链表是通过拼接给定的两个链表的所有节点组成的。将两个升序链表合并为一个新的。原创 2024-09-26 09:22:36 · 286 阅读 · 0 评论 -
LCR 123. 图书整理 简单链表递归 python
书店店员有一张链表形式的书单,每个节点代表一本书,节点中的值表示书的编号。为更方便整理书架,店员需要将书单倒过来排列,就可以从最后一本书开始整理,逐一将书放回到书架上。请倒序返回这个书单链表。原创 2024-09-24 09:05:38 · 274 阅读 · 0 评论 -
231. 2 的幂 简单递归 python除法的类型
请你判断该整数是否是 2 的幂次方。原创 2024-09-24 08:56:42 · 264 阅读 · 0 评论 -
2073. 买票需要的时间 简单模拟
位置 0 的人成功买到 5 张票,用掉 4 + 1 + 1 + 1 + 1 = 8 秒。- 第一轮,队伍中的每个人都买到一张票,队伍变为 [4, 0, 0, 0]。- 第二轮,队伍中的每个都又都买到一张票,队伍变为 [0, 1, 0]。- 第一轮,队伍中的每个人都买到一张票,队伍变为 [1, 2, 1]。位置 2 的人成功买到 2 张票,用掉 3 + 3 = 6 秒。如果一个人没有剩下需要买的票,那他将会。- 接下来的 4 轮,只有位置 0 的人在买票。开始)的人完成买票需要的时间(以秒为单位)。原创 2024-09-23 07:35:33 · 424 阅读 · 0 评论 -
面试题 02.07. 链表相交 双指针
从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。从各自的表头开始算起,链表 A 为 [0,9,1,2,4],链表 B 为 [3,2,4]。从各自的表头开始算起,链表 A 为 [2,6,4],链表 B 为 [1,5]。在 A 中,相交节点前有 2 个节点;在 B 中,相交节点前有 3 个节点。在 B 中,相交节点前有 1 个节点。相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。相交节点的值为 2 (注意,如果两个链表相交则不能为 0)。原创 2024-09-22 13:41:11 · 400 阅读 · 0 评论 -
面试题 01.06. 字符串压缩 双指针
若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。要先判断需不需要压缩成数字。原创 2024-09-21 08:27:57 · 214 阅读 · 0 评论 -
922. 按奇偶排序数组 II 双指针 力扣
左右指针0和n-1,左指针一次前进2格,永远在偶数位,右指针一次后退2格,永远在奇数位。[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。任何满足上述条件的数组作为答案。对数组进行排序,以便当。给定一个非负整数数组。原创 2024-09-20 20:58:09 · 413 阅读 · 0 评论 -
905. 按奇偶排序数组 双指针
4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。905. 按奇偶排序数组。原创 2024-09-20 20:19:15 · 183 阅读 · 0 评论 -
696. 计数二进制子串 脑筋急转弯
6 个子串满足具有相同数量的连续 1 和 0 :"0011"、"01"、"1100"、"10"、"0011" 和 "01"。有 4 个子串:"10"、"01"、"10"、"01" ,具有相同数量的连续 1 和 0。另外,"00110011" 不是有效的子串,因为所有的 0(还有 1 )没有组合在一起。的非空(连续)子字符串的数量,并且这些子字符串中的所有。注意,一些重复出现的子串(不同位置)要统计它们出现的次数。重复出现(不同位置)的子串也要统计它们出现的次数。,统计并返回具有相同数量。原创 2024-09-20 20:09:57 · 334 阅读 · 0 评论 -
力扣 短串匹配长串 python 双指针
"leeto" 没有在 "leetcode" 中出现,所以返回 -1。字符串的第一个匹配项的下标(下标从 0 开始)。第一个匹配项的下标是 0 ,所以返回 0。"sad" 在下标 0 和 6 处匹配。原创 2024-09-20 19:31:07 · 379 阅读 · 0 评论 -
1089. 复写零 力扣 python 双指针 for循环作用域
调用函数后,输入的数组将被修改为:[1,0,0,2,3,0,0,4],请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。注意:请不要在超过该数组长度的位置写入元素。调用函数后,输入的数组将被修改为:[1,2,3]进行上述修改,不要从函数返回任何东西。给你一个长度固定的整数数组。原创 2024-09-20 19:04:34 · 293 阅读 · 0 评论 -
LCP 18. 早餐组合 双指针 排序求组合
解释:小扣有 8 种购买方案,所选主食与所选饮料在数组中对应的下标分别是: 第 1 种方案:staple[0] + drinks[2] = 2 + 5 = 7;第 5 种方案:staple[1] + drinks[3] = 1 + 1 = 2;解释:小扣有 6 种购买方案,所选主食与所选饮料在数组中对应的下标分别是: 第 1 种方案:staple[0] + drinks[0] = 10 + 5 = 15;第 6 种方案:staple[2] + drinks[2] = 5 + 2 = 7。原创 2024-09-20 12:42:48 · 755 阅读 · 0 评论 -
1332. 删除回文子序列 脑筋急转弯
子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一个子序列。「回文」定义:如果一个字符串向后和向前读是一致的,那么这个字符串就是一个回文。返回删除给定字符串中所有字符(字符串为空)的最小删除次数。先删除回文子序列 "baab",然后再删除 "b"。先删除回文子序列 "a",然后再删除 "bb"。字符串本身就是回文序列,只需要删除一次。每一次删除操作都可以从。原创 2024-09-20 12:39:08 · 247 阅读 · 0 评论 -
680. 验证回文串 II 力扣 双指针 python
如果字符串不是回文,则使用双指针法从两端向中间遍历字符串。是否本身就是回文字符串,如果是,则直接返回。是否能成为回文字符串:如果能,返回。你可以删除字符 'c'。可以从中删除一个字符。原创 2024-09-19 22:46:07 · 339 阅读 · 0 评论 -
2108. 找出数组中的第一个回文字符串 双指针 python
的定义为:如果一个字符串正着读和反着读一样,那么该字符串就是一个。注意,"racecar" 也是回文字符串,但它不是第一个。第一个也是唯一一个回文字符串是 "racecar"。如果不存在满足要求的字符串,返回一个。2108. 找出数组中的第一个回文字符串。不存在回文字符串,所以返回一个空字符串。第一个回文字符串是 "ada"。,找出并返回数组中的。原创 2024-09-19 21:54:39 · 237 阅读 · 0 评论 -
1768. 交替合并字符串 力扣 双指针
开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。注意,word2 比 word1 长,"rs" 需要追加到合并后字符串的末尾。注意,word1 比 word2 长,"cd" 需要追加到合并后字符串的末尾。合并后: a p b q r s。合并后: a p b q c d。合并后: a p b q c r。1768. 交替合并字符串。原创 2024-09-19 21:39:18 · 246 阅读 · 0 评论 -
917. 仅仅反转字母 双指针 ‘A‘ <= i <= ‘z‘的区分
虽然这种方式在一些其他编程语言中可能可行,但在 Python 中,这样的表达式会按照从左到右的顺序分别判断。的布尔值结果,然后再对这两个布尔值进行比较,而不是像预期的那样判断字符是否在字母范围内。这样的内置方法来正确判断一个字符是否为字母。在 Python 中不能使用。来判断一个字符是不是字母。,这两个条件分别会产生。,从而产生错误的判断。原创 2024-09-19 21:32:42 · 462 阅读 · 0 评论 -
662. 二叉树最大宽度 BFS 力扣
被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。将这个二叉树视作与满二叉树结构相同,两端点间会出现一些延伸到这一层的。最大宽度出现在树的第 4 层,宽度为 7 (6,null,null,null,null,null,7)。最大宽度出现在树的第 3 层,宽度为 4 (5,3,null,9)。最大宽度出现在树的第 2 层,宽度为 2 (3,2)。题目数据保证答案将会在。662. 二叉树最大宽度。给你一棵二叉树的根节点。原创 2024-09-18 21:56:36 · 608 阅读 · 0 评论 -
561. 数组拆分 递归思想 数学规律 python 力扣
这里简要证明一下:如nums = [1,4,3,2],如果我们想舍去一个元素让剩下的元素最大,我们舍弃谁呢?显然是不能的,因为题意取的是一对数里面最小的元素,而1,2已经是最小的数。用递归的思想来解释,我们为了把1舍弃就必须找一个元素给他‘陪葬’,这个元素最好是比1大一点点的那个数,这样才能保持剩余的元素最大。最优的分法为 (2, 1), (2, 5), (6, 6). min(2, 1) + min(2, 5) + min(6, 6) = 1 + 2 + 6 = 9。,你的任务是将这些数分成。原创 2024-09-10 09:02:29 · 513 阅读 · 0 评论 -
2516. 每种字符至少取 K 个 滑动窗口 正难则反
r为右指针,l为左指针,当r指针右滑不满足条件时,则一直滑动左指针直到满足条件为止。下面的代码在第二个for循环是已经把不满足答案的给舍去了,所以下面的while循环一定能够找到满足num[ord(s[r])-97]原创 2024-09-10 08:44:30 · 530 阅读 · 0 评论 -
2287. 重排字符形成目标字符串 Python 力扣
2287. 重排字符形成目标字符串给你两个下标从开始的字符串s和target。你可以从s取出一些字符并将其重排,得到若干新的字符串。从s中取出字符并重新排列,返回可以形成target的副本数。2对于 "code" 的第 1 个副本,选取下标为 4 、5 、6 和 7 的字符。对于 "code" 的第 2 个副本,选取下标为 17 、18 、19 和 20 的字符。形成的字符串分别是 "ecod" 和 "code" ,都可以重排为 "code"。原创 2024-09-07 16:07:01 · 509 阅读 · 0 评论 -
442. 数组中重复的数据
但是改数组的第一个值是,就可能把其他地方的值给改变了。如果我们用取模运算的话就可以实现对后面数组中数字的余数不改变,但是数值会改变。如果出现两次4,数组就会加两次4.最后如果数组中有>2n的值出现是,就说明该数字出现了两次。对于第一个元素4,---> nums[4%n-1]=num[4%n-1]+n。为什么要%n,这样下一次对原数组操作时,取余就可以得到原来的值。且仅使用常量额外空间,可以考虑就在原数组上面改动。要保证数组的下标可以一一对应起来。的整数,并以数组形式返回。原创 2024-08-24 15:24:42 · 216 阅读 · 0 评论 -
1143. 最长公共子序列(详细版)
给定两个字符串text1和text2,返回这两个字符串的最长的长度。如果不存在,返回0。一个字符串的是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。"ace""abcde""aec""abcde"两个字符串的是这两个字符串所共同拥有的子序列。3最长公共子序列是 "ace" ,它的长度为 3。3最长公共子序列是 "abc" ,它的长度为 3。0两个字符串没有公共子序列,返回 0。原创 2024-07-28 07:26:34 · 971 阅读 · 0 评论 -
dp有时候就是找规律 343. 整数拆分 python 力扣
,并使这些整数的乘积最大化。你可以获得的最大乘积。原创 2024-07-24 00:39:38 · 534 阅读 · 1 评论 -
152. 乘积最大子数组 python 7行代码
152. 乘积最大子数组已解答中等相关标签相关企业给你一个整数数组nums,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。测试用例的答案是一个整数。6子数组 [2,3] 有最大乘积 6。0结果不能为 2, 因为 [-2,-1] 不是子数组。本质是空间换时间+贪心。原创 2024-07-19 00:17:15 · 376 阅读 · 0 评论 -
1310. 子数组异或查询 异或 前缀和 python
例如,对于数组$a_1,a_2,a_3,a_4,a_5,a_6$,其前缀异或数组为$b_1,b_2,b_3,b_4,b_5,b_6$。如果要计算子段$a_3,a_4,a_5$的异或值,可以通过$b_5\oplus b_2$来得到,因为$b_5$是$a_1\oplus a_2\oplus a_3\oplus a_4\oplus a_5$的异或值,$b_2$是$a_1\oplus a_2$的异或值,所以$b_5\oplus b_2$就是$a_3\oplus a_4\oplus a_5$的异或值。原创 2024-06-09 18:12:39 · 604 阅读 · 0 评论 -
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
当pre[i]出现 负数或0时,我们需要找到pre[presum-1],所以我们应该标记presum第一次出现的元素(需要求最长),这一点不难理解。比如上图找pre[i]=-1时,我们需要从前往后找pre数组,看看有没有pre[j]=-2,找到第一个-2,然后最大的长度就是index[ 2: 6],长度为5。如果pre[i]>0时,则说明从下标0开始到i的前缀和都大于0,所求的最大的长度就是i+1(因为下标从0开始,所以要加1)所谓「表现良好的时间段」,意味在这段时间内,「劳累的天数」是严格。原创 2024-06-09 10:37:11 · 496 阅读 · 2 评论 -
2559. 统计范围内的元音字符串数(前缀和) o(n)时间复杂度
以元音开头和结尾的字符串是 "aba"、"ece"、"aa" 和 "e"。查询 [1,4] 结果为 3(字符串 "ece"、"aa"、"e")。查询 [0,2] 结果为 2(字符串 "aba" 和 "ece")。每个字符串都满足这一条件,所以返回 [3,2,1]。这两个值)并且以元音开头和结尾的字符串的数目。返回一个整数数组,其中数组的第。查询 [1,1] 结果为 0。返回结果 [2,3,0]。以及一个二维整数数组。原创 2024-06-07 15:59:13 · 628 阅读 · 0 评论 -
1685. 有序数组中差绝对值之和
给你一个有序整数数组nums。请你建立并返回一个整数数组result,它跟nums长度相同,且result[i]等于nums[i]与数组中所有其他元素差的绝对值之和。换句话说,result[i]等于,其中且j!= i(下标从 0 开始)。[4,3,5]假设数组下标从 0 开始,那么。原创 2024-06-03 19:52:52 · 351 阅读 · 0 评论