
LeetCode每日一题打卡
文章平均质量分 82
硕风和炜
硕风和炜,CSDN官方Java领域优质创作者,阿里云社区专家博主,华为云云享专家,第十二届蓝桥杯JavaB组省1,保研,国家奖学金,JAVA开发技术栈,面试刷题,面经八股文,经验分享,好用的网站工具分享
展开
-
【LeetCode:132. 分割回文串 II + 动态规划】
【LeetCode:132. 分割回文串 II + 动态规划】给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文串。返回符合要求的 最少分割次数 。原创 2025-03-02 14:34:36 · 685 阅读 · 0 评论 -
【LeetCode: 面试变体: 236. 二叉树的最近公共祖先 + 数组 + 递归】
【LeetCode: 面试变体: 236. 二叉树的最近公共祖先 + 数组 + 递归】给定一个数组来表示二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”原创 2025-02-26 10:55:17 · 915 阅读 · 0 评论 -
【LeetCode: 236. 二叉树的最近公共祖先 + 二叉树 + 递归】
【LeetCode: 236. 二叉树的最近公共祖先 + 二叉树 + 递归】给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”原创 2025-02-25 09:58:09 · 649 阅读 · 0 评论 -
【LeetCode: 2506. 统计相似字符串对的数目 + 模拟 + 哈希表】
【LeetCode: 2506. 统计相似字符串对的数目 + 模拟 + 哈希表】给你一个下标从 0 开始的字符串数组 words 。如果两个字符串由相同的字符组成,则认为这两个字符串 相似 。- 例如,"abca" 和 "cba" 相似,因为它们都由字符 'a'、'b'、'c' 组成。- 然而,"abacba" 和 "bcfd" 不相似,因为它们不是相同字符组成的。请你找出满足字符串 words[i] 和 words[j] 相似的下标对 (i, j) ,并返回下标对的数目,其中 0 <= i原创 2025-02-22 22:29:46 · 837 阅读 · 0 评论 -
【LeetCode: 2595. 奇偶位数 + 位运算】
【LeetCode: 2595. 奇偶位数 + 位运算】给你一个 正 整数 n 。用 even 表示在 n 的二进制形式(下标从 0 开始)中值为 1 的偶数下标的个数。用 odd 表示在 n 的二进制形式(下标从 0 开始)中值为 1 的奇数下标的个数。请注意,在数字的二进制表示中,位下标的顺序 从右到左。返回整数数组 answer ,其中 answer = [even, odd] 。原创 2025-02-20 09:59:30 · 892 阅读 · 0 评论 -
【LeetCode: 624. 数组列表中的最大距离 + 维护最大值最小值】
【LeetCode: 624. 数组列表中的最大距离 + 维护最大值最小值】给定 m 个数组,每个数组都已经按照升序排好序了。现在你需要从两个不同的数组中选择两个整数(每个数组选一个)并且计算它们的距离。两个整数 a 和 b 之间的距离定义为它们差的绝对值 |a-b| 。返回最大距离。原创 2025-02-19 10:27:13 · 303 阅读 · 0 评论 -
【LeetCode: LCR 126. 斐波那契数 + 动态规划】
【LeetCode: LCR 126. 斐波那契数 + 动态规划】斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1) = 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给定 n ,请计算 F(n) 。原创 2025-02-18 15:33:54 · 834 阅读 · 0 评论 -
【LeetCode: 189. 轮转数组 + 原地反转】
【LeetCode: 189. 轮转数组 + 原地反转】给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。原创 2025-02-16 09:00:00 · 1494 阅读 · 0 评论 -
【LeetCode: 611. 有效三角形的个数 + 排序 + 双指针】
【LeetCode: 611. 有效三角形的个数 + 排序 + 双指针】给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。原创 2025-02-15 10:14:20 · 578 阅读 · 0 评论 -
【LeetCode: 1552. 两球之间的磁力 + 二分】
【LeetCode: 1552. 两球之间的磁力 + 二分】在代号为 C-137 的地球上,Rick 发现如果他将两个球放在他新发明的篮子里,它们之间会形成特殊形式的磁力。Rick 有 n 个空的篮子,第 i 个篮子的位置在 position[i] ,Morty 想把 m 个球放到这些篮子里,使得任意两球间 最小磁力 最大。已知两个球如果分别位于 x 和 y ,那么它们之间的磁力为 |x - y| 。给你一个整数数组 position 和一个整数 m ,请你返回最大化的最小磁力。原创 2025-02-14 10:35:39 · 685 阅读 · 0 评论 -
【LeetCode: 442. 数组中重复的数据 + 索引映射】
【LeetCode: 442. 数组中重复的数据 + 索引映射】给你一个长度为 n 的整数数组 nums ,其中 nums 的所有整数都在范围 [1, n] 内,且每个整数出现 最多两次 。请你找出所有出现 两次 的整数,并以数组形式返回。你必须设计并实现一个时间复杂度为 O(n) 且仅使用常量额外空间(不包括存储输出所需的空间)的算法解决此问题。原创 2025-02-13 17:33:21 · 580 阅读 · 0 评论 -
【LeetCode: 1760. 袋子里最少数目的球 + 二分】
【LeetCode: 1760. 袋子里最少数目的球 + 二分】给你一个整数数组 nums ,其中 nums[i] 表示第 i 个袋子里球的数目。同时给你一个整数 maxOperations 。你可以进行如下操作至多 maxOperations 次:原创 2025-02-12 17:12:35 · 1087 阅读 · 0 评论 -
【LeetCode: 8. 字符串转换整数 (atoi) + 模拟】
【LeetCode: 8. 字符串转换整数 (atoi) + 模拟】请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数。函数 myAtoi(string s) 的算法如下:- 空格:读入字符串并丢弃无用的前导空格(" ")- 符号:检查下一个字符(假设还未到字符末尾)为 '-' 还是 '+'。如果两者都不存在,则假定结果为正。- 转换:通过跳过前置零来读取该整数,直到遇到非数字字符或到达字符串的结尾。如果没有读取数字,则结果为0。- 舍入:如果原创 2025-02-11 23:50:24 · 1289 阅读 · 0 评论 -
【LeetCode: 378. 有序矩阵中第 K 小的元素 + 二分】
【LeetCode: 378. 有序矩阵中第 K 小的元素 + 二分】给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。你必须找到一个内存复杂度优于 O(n2) 的解决方案。原创 2025-02-10 10:58:41 · 1272 阅读 · 0 评论 -
【LeetCode: 365. 水壶问题 + 数学】
【LeetCode: 365. 水壶问题 + 数学】有两个水壶,容量分别为 x 和 y 升。水的供应是无限的。确定是否有可能使用这两个壶准确得到 target 升。原创 2025-02-09 18:56:14 · 733 阅读 · 0 评论 -
【LeetCode: 525. 连续数组 + 前缀和 + 哈希表】
【LeetCode: 525. 连续数组 + 前缀和 + 哈希表】给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。原创 2025-02-08 11:04:52 · 369 阅读 · 0 评论 -
【LeetCode: 556. 下一个更大元素 III + 思维】
【LeetCode: 556. 下一个更大元素 III + 思维】给你一个正整数 n ,请你找出符合条件的最小整数,其由重新排列 n 中存在的每位数字组成,并且其值大于 n 。如果不存在这样的正整数,则返回 -1 。注意 ,返回的整数应当是一个 32 位整数 ,如果存在满足题意的答案,但不是 32 位整数 ,同样返回 -1 。原创 2025-02-07 18:57:06 · 930 阅读 · 0 评论 -
【LeetCode: 887. 鸡蛋掉落 + 递归 + 二分 + dp】
【LeetCode: 887. 鸡蛋掉落 + 递归 + 二分 + dp】给你 k 枚相同的鸡蛋,并可以使用一栋从第 1 层到第 n 层共有 n 层楼的建筑。已知存在楼层 f ,满足 0 <= f <= n ,任何从 高于 f 的楼层落下的鸡蛋都会碎,从 f 楼层或比它低的楼层落下的鸡蛋都不会破。每次操作,你可以取一枚没有碎的鸡蛋并把它从任一楼层 x 扔下(满足 1 <= x <= n)。如果鸡蛋碎了,你就不能再次使用它。如果某枚鸡蛋扔下后没有摔碎,则可以在之后的操作中 重复使用 这枚鸡蛋。请你计原创 2025-02-06 11:12:09 · 603 阅读 · 0 评论 -
【LeetCode: 1004. 最大连续1的个数 III + 滑动窗口】
【LeetCode: 1004. 最大连续1的个数 III + 滑动窗口】给定一个二进制数组 nums 和一个整数 k,假设最多可以翻转 k 个 0 ,则返回执行操作后 数组中连续 1 的最大个数 。原创 2025-02-05 11:48:25 · 936 阅读 · 0 评论 -
【LeetCode: 922. 按奇偶排序数组 II + 双指针】
【LeetCode: 922. 按奇偶排序数组 II + 双指针】给定一个非负整数数组 nums, nums 中一半整数是 奇数 ,一半整数是 偶数 。对数组进行排序,以便当 nums[i] 为奇数时,i 也是 奇数 ;当 nums[i] 为偶数时, i 也是 偶数 。你可以返回 任何满足上述条件的数组作为答案 。原创 2025-02-04 11:32:43 · 382 阅读 · 0 评论 -
【LeetCode: 445. 两数相加 II + 链表】
【LeetCode: 445. 两数相加 II + 链表】给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。原创 2025-02-03 21:40:03 · 897 阅读 · 0 评论 -
【LeetCode: 598. 区间加法 II + 脑筋急转弯】
【LeetCode: 598. 区间加法 II + 脑筋急转弯】给你一个 m x n 的矩阵 M 和一个操作数组 op 。矩阵初始化时所有的单元格都为 0 。ops[i] = [ai, bi] 意味着当所有的 0 <= x < ai 和 0 <= y < bi 时, M[x][y] 应该加 1。在 执行完所有操作后 ,计算并返回 矩阵中最大整数的个数 。原创 2025-02-02 00:14:43 · 865 阅读 · 0 评论 -
【LeetCode: 81. 搜索旋转排序数组 II + 二分查找】
【LeetCode: 81. 搜索旋转排序数组 II + 二分查找】已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同。给你 旋转后 的数组 nums 和一个整数 target ,请你编写一个函数来判断给定的目标值是否存在于数组中。如果 nums 中存在这个目标值 target ,则返回 true ,否则返回 false 。原创 2025-02-01 13:16:40 · 1228 阅读 · 0 评论 -
【LeetCode: 541. 反转字符串 II + 模拟】
【LeetCode: 541. 反转字符串 II + 模拟】给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。- 如果剩余字符少于 k 个,则将剩余字符全部反转。- 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。原创 2025-01-31 22:25:45 · 693 阅读 · 0 评论 -
【LeetCode: 958. 二叉树的完全性检验 + bfs + 二叉树】
【LeetCode: 958. 二叉树的完全性检验 + bfs + 二叉树】给你一棵二叉树的根节点 root ,请你判断这棵树是否是一棵 完全二叉树 。在一棵 完全二叉树 中,除了最后一层外,所有层都被完全填满,并且最后一层中的所有节点都尽可能靠左。最后一层(第 h 层)中可以包含 1 到 2h 个节点。原创 2025-01-30 11:29:02 · 1023 阅读 · 0 评论 -
【LeetCode: 169. 多数元素 + Boyer-Moore 投票算法】
【LeetCode: 169. 多数元素 + Boyer-Moore 投票算法】给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。原创 2025-01-29 22:30:24 · 728 阅读 · 0 评论 -
【LeetCode: 704. 二分查找 + 二分】
【LeetCode: 704. 二分查找 + 二分】给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。原创 2025-01-27 18:30:28 · 1005 阅读 · 0 评论 -
【LeetCode: 40. 组合总和 II + 递归】
【LeetCode: 40. 组合总和 II + 递归】给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用 一次 。注意:解集不能包含重复的组合。原创 2025-01-26 10:37:23 · 735 阅读 · 0 评论 -
【LeetCode: 941. 有效的山脉数组 + 双指针】
【LeetCode: 941. 有效的山脉数组 + 双指针】给定一个整数数组 arr,如果它是有效的山脉数组就返回 true,否则返回 false。让我们回顾一下,如果 arr 满足下述条件,那么它是一个山脉数组:原创 2025-01-25 11:27:29 · 962 阅读 · 0 评论 -
【LeetCode: 215. 数组中的第K个最大元素 + 快速选择排序】
【LeetCode: 215. 数组中的第K个最大元素 + 快速选择排序】给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。原创 2025-01-19 16:10:37 · 649 阅读 · 0 评论 -
【LeetCode: 415. 字符串相加 + 双指针】
【LeetCode: 415. 字符串相加 + 双指针】给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。原创 2025-01-18 15:27:42 · 807 阅读 · 0 评论 -
【LeetCode: 739. 每日温度 + 单调栈】
【LeetCode: 739. 每日温度 + 单调栈】给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。原创 2025-01-17 09:15:00 · 522 阅读 · 0 评论 -
【LeetCode: 226. 翻转二叉树 + 二叉树】
【LeetCode: 226. 翻转二叉树 + 二叉树】给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。原创 2025-01-16 10:32:11 · 678 阅读 · 0 评论 -
【LeetCode: 394. 字符串解码 + 栈】
【LeetCode: 394. 字符串解码 + 栈】给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。原创 2025-01-14 10:18:22 · 950 阅读 · 0 评论 -
【LeetCode: 179. 最大数 + 贪心】
【LeetCode: 179. 最大数 + 贪心】给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。原创 2025-01-13 12:02:47 · 456 阅读 · 0 评论 -
【LeetCode: 240. 搜索二维矩阵 II + 指针 + 遍历】
【LeetCode: 240. 搜索二维矩阵 II + 指针 + 遍历】编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。原创 2025-01-12 11:48:56 · 1341 阅读 · 0 评论 -
【LeetCode: 45. 跳跃游戏 II + 贪心】
【LeetCode: 45. 跳跃游戏 II + 贪心】给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处:- 0原创 2025-01-11 16:29:53 · 677 阅读 · 0 评论 -
【LeetCode: 912. 排序数组 + 归并排序】
【LeetCode: 912. 排序数组 + 归并排序】给你一个整数数组 nums,请你将该数组升序排列。你必须在 不使用任何内置函数 的情况下解决问题,时间复杂度为 O(nlog(n)),并且空间复杂度尽可能小。原创 2025-01-10 10:31:25 · 592 阅读 · 0 评论 -
【LeetCode: 763. 划分字母区间 + 贪心】
【LeetCode: 763. 划分字母区间 + 贪心】给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。返回一个表示每个字符串片段的长度的列表。原创 2025-01-09 11:21:32 · 986 阅读 · 0 评论 -
【LeetCode: 560. 和为 K 的子数组 + 前缀和 + 哈希表】
【LeetCode: 560. 和为 K 的子数组 + 前缀和 + 哈希表】给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。子数组是数组中元素的连续非空序列。原创 2025-01-08 10:58:45 · 522 阅读 · 0 评论