
Leetcode
文章平均质量分 61
Wils0nEdwards
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode 平衡二叉树
标志位,如果一个子树是平衡二叉树时,返回该子树的高度。如果一个子树是非平衡二叉树时,原创 2025-05-08 15:37:08 · 195 阅读 · 0 评论 -
Leetcode 重复的 DNA 序列
(N 为字符串长度),空间复杂度为。这个解法的时间复杂度为。,在实际应用中效率很高。原创 2025-05-07 11:19:44 · 228 阅读 · 0 评论 -
Leetcode 独一无二的出现次数
可以通过哈希集来判断是否独一无二,如果set中已经包含了count,那么会返回false会返回这个Map中所有的一个,也就是说,它返回的是所有“出现次数”组成的集合(但不是Set,而是一个Collection。原创 2025-04-14 17:43:18 · 377 阅读 · 0 评论 -
Leetcode 去除重复字母
当前字符要想成功“插队”,它必须比栈顶更小,而且栈顶字符不能是“最后一次机会”,这样才有资格被踢出。原创 2025-04-14 17:28:11 · 457 阅读 · 0 评论 -
Leetcode 两数相除
点位说明🚫 不使用* / %用减法和位移代替⚠️ 特判溢出MIN_VALUE / -1 会溢出📈 位运算加速倍增 divisor 快速逼近💡 先判断再左移防越界🔒 使用 long 类型防止中间计算溢出// 处理特殊溢出情况, 当被除数是-2^31且除数是-1时, 此时得到的结果会溢出// 记录结果正负// 使用 long 转换避免溢出,并且将被除数和除数都转换成正数,// 我们利用内层的while循环来快速找到不超过ldividend的最大的ldivisor * 2^k,原创 2025-03-29 21:38:08 · 476 阅读 · 0 评论 -
Leetcode 三数之和
解题思路,固定一个数,然后另外两个数使用双指针。要点,需要排序,去重。原创 2025-03-29 20:41:28 · 396 阅读 · 0 评论 -
Leetcode 背包问题笔记
背包类型外层循环内层循环备注0-1 背包遍历物品容量倒序防止重复选择完全背包遍历物品容量正序允许重复选择多重背包拆成多个 0-1 背包同 0-1 背包或用二进制优化分组背包遍历分组遍历每组内物品 + 容量倒序每组最多选一个。原创 2025-03-28 15:33:34 · 409 阅读 · 0 评论 -
Leetcode 最长回文子序列
你理解得非常棒!👍你用“”这个比喻形象又贴切,非常适合描述这个动态规划的滑动过程!原创 2025-03-28 14:39:04 · 247 阅读 · 0 评论 -
Leetcode 使用最小花费爬楼梯
动态规划,java solution。原创 2025-03-28 14:05:33 · 221 阅读 · 0 评论 -
Leetcode 组合总和 II
回溯(Backtracking)排序 + 去重剪枝优化每个元素只能用一次(控制递归起点)//因为需要去重, 所以首先必须排序//先判断是否满足期望条件return;i++) {//因为题目要求不能有重复元素, 所以需要首先去重//剪枝//之所以用的是 break 而不是 continue,关键点在于已经对 candidates 做了排序。原创 2025-03-28 13:55:27 · 420 阅读 · 0 评论 -
Leetcode 组合总和 III
回溯法一个。原创 2025-03-28 13:23:50 · 273 阅读 · 0 评论 -
Leetcode 最长递增子序列的个数
我们之前计算了每个位置ii < n;i++) {原创 2025-03-27 20:15:27 · 421 阅读 · 0 评论 -
Leetcode 四数之和
排序数组:便于双指针和去重操作双指针:利用有序数组快速找到两数之和去重处理:防止重复答案(i、j、left、right层层去重)long 类型:规避溢出风险//首先进行排序i < n - 3;i++) { //先确定第一个数//进行去重//然后确定第二个数j < n - 2;j++) {//去重//此时, 前两个数都确定了,然后开始初始化双指针//先计算四数之和//继续去重。原创 2025-03-27 19:39:11 · 1011 阅读 · 0 评论 -
Leetcode 二叉树剪枝
当前节点是 0,并且它的子树中没有 1 —— 满足“整棵子树没有 1”的条件,因此需要剪掉。在后序遍历中,我们是先把左子树和右子树递归“剪干净”后,才处理当前节点。已经是处理完的结果 —— 如果某一子树里没有 1,它就已经是。,而不是判断子节点的值是否为 0。原创 2025-03-27 18:55:12 · 396 阅读 · 0 评论 -
Leetcode 最长回文串
【代码】Leetcode 最长回文串。原创 2025-03-27 18:40:35 · 114 阅读 · 0 评论 -
Leetcode 单词接龙
特性单词接龙(Word Ladder)最小基因变化(Min Mutation)起始 step1(包括起点)0(只计变换次数)变化字符集'a'到'z'共 26 个字母4 种碱基每轮字符数组构建方式每次新建char[]修改原数组char[],需回溯目标不存在的返回值0-1是否需要手动回溯❌ 不需要✅ 需要。原创 2025-03-27 18:14:45 · 832 阅读 · 0 评论 -
Leetcode 数据流的中位数
当然可以!这道题的核心思想是利用。我将从整体设计和每一步的操作细节详细解释这段 Java 代码。原创 2025-03-27 16:06:09 · 919 阅读 · 0 评论 -
Leetcode 寻找两个正序数组的中位数
条件说明该怎么调nums1左边太多(或太大)i要往左缩,(else 情况)nums1左边太少(或太小)i要往右扩,满足找到了合法划分直接 return 中位数。原创 2025-03-27 15:15:57 · 1058 阅读 · 0 评论 -
Leetcode 最小基因变化
java solution:BFS 算法好的,我们来这段 Java 代码,理解它的。这其实是一个经典的,问题背景是基因变换,但本质和图上的最短路径查找非常类似。原创 2025-03-26 22:16:28 · 572 阅读 · 0 评论 -
Leetcode 路径总和 III
java 解法一:双递归。解法二:前缀和 + 回溯。原创 2025-03-26 21:11:05 · 304 阅读 · 0 评论 -
Leetcode 交错字符串
【代码】Leetcode 交错字符串。原创 2025-03-26 16:54:29 · 264 阅读 · 0 评论 -
Leetcode 二进制求和
双指针思想:从两个字符串的末尾向前遍历。模拟竖式加法:一位一位加,处理进位。边界处理:长度不等时自动补零,进位单独判断。空间优化:用构建字符串效率高。原创 2025-03-26 16:26:17 · 379 阅读 · 0 评论 -
Leetcode 基本计算器
java solution,空格字符被隐式忽略跳过了。原创 2025-03-26 16:03:11 · 219 阅读 · 0 评论 -
Leetcode LRU缓存
为了实现这一目标,我们使用。这样,我们就高效地实现了。成为最近使用的数据。原创 2025-03-04 17:09:12 · 710 阅读 · 0 评论 -
Leetcode 最大正方形
【代码】Leetcode 最大正方形。原创 2025-01-03 20:58:06 · 662 阅读 · 0 评论 -
Leetcode 查找和最小的 K 对数字
【代码】Leetcode 查找和最小的 K 对数字。原创 2025-01-03 20:33:21 · 368 阅读 · 0 评论 -
Leetcod 课程表 Ⅱ
数组的存放的是课程i修完之后才能修的课程。入度数量代表着该门课程有几门先修课程。原创 2025-01-02 21:01:22 · 207 阅读 · 0 评论 -
Leetcode 从中序与后序遍历序列构造二叉树
【代码】Leetcode 从中序与后序遍历序列构造二叉树。原创 2024-12-31 17:16:35 · 328 阅读 · 0 评论 -
Leetcode 从前序与中序遍历序列构造二叉树
inorderStart 和 inorderEnd 是中序遍历序列下标索引。原创 2024-12-31 16:47:45 · 245 阅读 · 0 评论 -
Leetcode 合并两个有序链表
【代码】Leetcode 合并两个有序链表。原创 2024-12-21 22:53:18 · 315 阅读 · 0 评论 -
Leetcode 串联所有单词的子串
中所有单词的串联,并且每个单词只能使用一次,且顺序可以任意。182 个测试用例通过了 181 个,被全 a 的测试用例卡住了(超时),通过滑动窗口和哈希表的结合,这个算法能够高效解决题目要求。中找到所有子串,这些子串是字符串数组。这道题目要求我们在字符串。原创 2024-12-21 22:41:57 · 814 阅读 · 0 评论 -
Leetcode 三角形最小路径和
这段代码通过动态规划的思想,从底向上逐层计算路径和,用一个一维数组优化了空间开销,避免了重复计算,具有较高的效率,适用于求解此类逐层递归累加的问题。java 实现。原创 2024-12-19 15:44:11 · 857 阅读 · 0 评论 -
Leetcode分隔链表
【代码】Leetcode分隔链表。原创 2024-12-19 15:24:55 · 308 阅读 · 0 评论 -
Leetcode O(1) 时间插入、删除和获取随机元素
【代码】Leetcode O(1) 时间插入、删除和获取随机元素。原创 2024-12-19 15:16:07 · 293 阅读 · 0 评论 -
Leetcode 验证二叉搜索树
min和max用来动态收窄当前节点值的合法范围。每次递归到左子树或右子树时,都会根据父节点值更新上下界。通过这种方式,可以有效检查树中每个节点是否满足BST的规则。原创 2024-12-18 17:03:26 · 496 阅读 · 0 评论 -
Leetcode 环形子数组的最大和
通过**总和 - 最小子数组和**,我们有效地剥离出中间最小和的部分,剩下的就是跨越两端的最大和子数组。这种方法简单高效,且时间复杂度为O(n)。也就是说,第二种情况时,总和 - 最小子数组和中的“最小子数组和”不能包含两端的数组元素跨越两端的最大子数组和是将数组的首尾部分连接起来,剥离掉中间的一段元素。如果最小子数组和包含了首尾元素,就不可能真正剥离出“中间的连续子数组”。情况2不适用,因为总和 - 最小子数组和会导致不合理的0结果。Kadane算法(情况1)原创 2024-12-18 14:43:45 · 845 阅读 · 0 评论 -
Leetcode H 指数
对citations数组进行升序排序。逐个检查从索引i到末尾的论文数量(即h = n - i如果当前论文的引用次数大于等于h,说明满足 H 指数的定义。返回最大满足条件的h值。输入数组 → 排序数组 → 遍历数组,计算每篇论文对应的 h 值 →判断引用次数是否满足条件 → 找到最大 H 指数 → 输出结果n - i是当前索引i到数组末尾的论文数量。我们检查当前索引i的引用次数是否≥ n - i如果满足,说明至少有n - i篇论文的引用次数大于等于n - i。这时,我们可以将。原创 2024-12-18 14:23:53 · 1038 阅读 · 0 评论 -
Leetcode 插入区间
toArray()的必要性:将转换成int[][],满足返回类型要求。只需指定第一个维度的大小:因为中的元素本身就是一维数组(int[]),无需再指定第二个维度的大小。提供了一个正确类型的模板,toArray()会基于它创建二维数组。原创 2024-12-16 15:54:11 · 525 阅读 · 0 评论 -
Leetcode 用最少数量的箭引爆气球
排序 + 贪心策略:排序气球的结束坐标,并选择最优的箭射击位置来覆盖尽可能多的气球。关键点:每次都将箭射向气球的结束坐标,贪心地缩小射击范围,减少箭的数量。//对右边界进行排序i++) {if(points[i][0] > currentEnd) { //需要增加箭数量的情况arrows++;原创 2024-12-15 16:47:23 · 635 阅读 · 0 评论 -
Leetcode Pow(x,n)
【代码】Leetcode Pow(x,n)原创 2024-12-15 16:33:27 · 156 阅读 · 0 评论