- 博客(215)
- 资源 (10)
- 收藏
- 关注
原创 LeetCode 1143. 最长公共子序列 - 多维动态规划与滚动数组优化详解
题目描述:给定两个字符串 text1 和 text2,返回它们的最长公共子序列(LCS)的长度。子序列是指通过删除原字符串中的某些字符(可以为零个),且不改变剩余字符的相对顺序所形成的新字符串。不同于子串,子序列不要求连续。原题链接:https://leetcode.cn/problems/longest-common-subsequence/难度等级:Medium相关标签:字符串、动态规划、二维DP、滚动数组、记忆化搜索。
2025-10-06 18:00:48
912
原创 LeetCode 994. 腐烂的橘子 - 多源BFS与图层传播详解
题目描述:在一个 m×n 的网格 grid 中,0 表示空单元格,1 表示新鲜橘子,2 表示腐烂橘子。每过一分钟,腐烂橘子会使其上下左右相邻的新鲜橘子变腐烂。请计算使所有橘子都腐烂所需的最小分钟数;如果无法全部腐烂,返回 -1;如果一开始就没有新鲜橘子,返回 0。原题链接:https://leetcode.cn/problems/rotting-oranges/难度等级:Medium相关标签:图论、BFS、队列、网格最短路、多源最短路、层序遍历。
2025-10-06 15:01:11
883
原创 LeetCode 763. 划分字母区间 - 贪心与双指针详解
题目描述:给定一个仅包含小写字母的字符串 s,将其划分为尽可能多的片段,使得每个字母最多只会出现在其中的一个片段中。返回一个表示每个片段大小的列表。原题链接:https://leetcode.cn/problems/partition-labels/难度等级:Medium相关标签:贪心、双指针、哈希表、字符串、区间合并算法原理预处理 last[c] 为字符 c 在 s 中的最后出现索引。从左到右扫描,用两个指针:start 表示当前片段起点;
2025-10-06 12:00:53
858
原创 LeetCode 739. 每日温度 - 单调栈与逆向跳跃优化详解
题目描述:给定一个整数数组 temperatures,表示每天的温度,返回一个数组 answer,其中 answer[i] 是指在第 i 天之后,才会有更高温度的天数。如果此后不存在更高的温度,令 answer[i] = 0。原题链接:https://leetcode.cn/problems/daily-temperatures/难度等级:Medium相关标签:数组、栈、单调栈、下一个更大元素、动态规划| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-10-06 09:01:11
1063
原创 LeetCode 560. 和为 K 的子数组 - 前缀和与哈希计数详解
题目描述:给定一个整数数组 nums 和一个整数 k,统计并返回数组中和为 k 的连续子数组的个数。数组元素可正可负,子数组必须是连续片段。原题链接:https://leetcode.cn/problems/subarray-sum-equals-k/难度等级:Medium相关标签:数组、哈希表、前缀和、滑动窗口(特例)、枚举| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-10-05 21:00:46
881
原创 LeetCode 543. 二叉树的直径 - DFS后序与分治优化详解
题目描述:给定一棵二叉树的根节点 root,返回该二叉树的直径(两节点之间最长路径的长度),路径长度以边数计。路径可以穿过根节点,也可以不穿过,必须沿父子边相连。原题链接:https://leetcode.cn/problems/diameter-of-binary-tree/难度等级:Easy相关标签:二叉树、DFS、后序遍历、分治、递归| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-10-05 18:00:49
933
原创 LeetCode 438. 找到字符串中所有字母异位词 - 滑动窗口与哈希计数详解
题目描述:给定两个字符串 s 和 p,找出 s 中所有与 p 互为字母异位词的子串的起始索引。字母异位词指由相同字符、相同频次构成的字符串,顺序可以不同。返回所有起始索引的列表,按升序排列。原题链接:https://leetcode.cn/problems/find-all-anagrams-in-a-string/难度等级:Medium相关标签:字符串、滑动窗口、哈希表、双指针| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-10-05 15:00:47
931
原创 LeetCode 437. 路径总和 III - 前缀和哈希与DFS回溯详解
题目描述:给定一棵二叉树的根节点 root 和一个整数 targetSum,统计树中路径和等于 targetSum 的路径数量。路径需沿父到子方向向下(可从任意节点开始、任意节点结束),但必须连续连接父子边。原题链接:https://leetcode.cn/problems/path-sum-iii/难度等级:Medium相关标签:二叉树、DFS、前缀和、哈希表、回溯| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-10-05 12:01:09
882
原创 LeetCode 416. 分割等和子集 - 0/1背包与位集优化详解
题目描述:给定一个只包含正整数的数组 nums,判断是否可以将该数组分割成两个子集,使得两个子集元素之和相等。等价于判断是否存在一个子集,其元素之和恰好为 sum(nums)/2。原题链接:https://leetcode.cn/problems/partition-equal-subset-sum/难度等级:Medium相关标签:数组、动态规划、0-1 背包、子集和、位运算| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-10-05 09:01:03
870
原创 LeetCode 394. 字符串解码 - 栈与递归DFS详解
题目描述:给定一个经过编码的字符串 s,编码规则为 k[encoded_string],表示其中方括号内的字符串正好重复 k 次。请你解码并返回该字符串。题目保证输入总是有效,嵌套形式如 3[a2[c]] 也是合法的;k 可能是多位数。原题链接:https://leetcode.cn/problems/decode-string/难度等级:Medium相关标签:栈、字符串、递归、DFS、栈模拟| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-10-04 21:02:02
1016
原创 LeetCode 347. 前K个高频元素 - 哈希计数、堆与桶排序详解
题目描述:给定一个整数数组 nums 和整数 k,请返回出现频率前 k 高的元素集合。若存在频率相同的元素,返回任意顺序均可。要求尽可能低的时间复杂度与合理的空间复杂度。原题链接:https://leetcode.cn/problems/top-k-frequent-elements/难度等级:Medium相关标签:数组、哈希表、堆(优先队列)、桶排序、排序| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-10-04 18:01:18
656
原创 LeetCode 322. 零钱兑换 - 动态规划与BFS优化详解
题目描述:给定不同面额的硬币 coins 和一个总金额 amount,计算凑成总金额所需的最少硬币数。如果无法凑成,返回 -1。每种硬币可以使用任意次。原题链接:https://leetcode.cn/problems/coin-change/难度等级:Medium相关标签:动态规划、完全背包、广度优先搜索(BFS)、贪心(不适用本题)、图论| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-10-04 15:01:03
2360
原创 LeetCode 300. 最长递增子序列 - 动态规划与二分优化详解
题目描述:给定一个整数数组 nums,找到其中最长严格递增子序列(Longest Increasing Subsequence, LIS)的长度。子序列不要求元素在原数组中连续,但必须保持相对顺序。原题链接:https://leetcode.cn/problems/longest-increasing-subsequence/难度等级:Medium相关标签:数组、动态规划、二分查找、贪心| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-10-04 12:00:39
626
原创 LeetCode 295. 数据流的中位数 - 双堆与平衡树详解
题目描述:设计并实现一个数据结构,支持向数据流中添加整数 addNum(int num) 与查询当前所有元素的中位数 findMedian()。中位数定义:长度为奇数取有序序列中间值,长度为偶数取中间两个数的平均值。原题链接:https://leetcode.cn/problems/find-median-from-data-stream/难度等级:Hard相关标签:设计、堆(优先队列)、平衡树、双堆、数据流。
2025-10-04 09:01:47
793
原创 LeetCode 287. 寻找重复数 - Floyd判环与二分计数详解
题目描述:给定包含 n+1 个整数的数组 nums,数组中的每个整数都在区间 [1, n] 内,且只有一个重复的数字(该数字可能重复出现多次)。请找出这个重复的数字。要求:不要修改数组(只读)、使用常数级 O(1) 额外空间,时间复杂度优于 O(n^2)。原题链接:https://leetcode.cn/problems/find-the-duplicate-number/难度等级:Medium相关标签:数组、二分查找、双指针(Floyd 判环)、抽屉原理、哈希表。
2025-10-03 21:01:33
761
原创 LeetCode 283. 移动零 - 双指针原地稳定移动详解
题目描述:给定一个整数数组 nums,将数组中的所有 0 移动到数组末尾,同时保持非零元素的相对顺序不变。要求在原地操作、尽可能降低时间与空间复杂度。原题链接:https://leetcode.cn/problems/move-zeroes/难度等级:Easy相关标签:数组、双指针、原地操作、稳定移动| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-10-03 18:01:01
697
原创 LeetCode 279. 完全平方数 - 动态规划与数论判定详解
题目描述:给定正整数 n,返回若干个完全平方数(如 1、4、9、16、...)的最少数量,使得它们的和等于 n。你可以重复使用同一个平方数。原题链接:https://leetcode.cn/problems/perfect-squares/难度等级:Medium相关标签:动态规划、完全背包、广度优先搜索、数学、数论| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-10-03 15:00:47
386
原创 LeetCode 240. 搜索二维矩阵 II - Z字形查找与二分优化详解
题目描述:在一个 m×n 的二维矩阵中,每一行按从左到右递增,每一列按从上到下递增。给定一个目标值 target,判断矩阵中是否存在该值,返回 true/false。原题链接:https://leetcode.cn/problems/search-a-2d-matrix-ii/难度等级:Medium相关标签:矩阵、双指针、二分查找、分治、搜索| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-10-03 12:01:01
265
原创 LeetCode 239. 滑动窗口最大值 - 单调队列与堆优化详解
题目描述:给定整数数组 nums 和窗口大小 k,请你返回一个数组 res,其中 res[i] 表示原数组中以 i 为窗口起点(或以 i+k-1 为窗口终点)的长度为 k 的子数组的最大值。窗口以 1 个元素为步长向右滑动,直到覆盖数组末尾。要求在尽可能低的时间复杂度下完成。原题链接:https://leetcode.cn/problems/sliding-window-maximum/难度等级:Hard相关标签:数组、滑动窗口、单调队列、优先队列、数据结构。
2025-10-03 09:00:38
458
原创 LeetCode 238. 除自身以外数组的乘积 - 前缀积与后缀积O(1)空间详解
题目描述:给定一个整数数组 nums,返回一个数组 answer,其中 answer[i] 等于 nums 中除 nums[i] 以外其余元素的乘积。要求时间复杂度为 O(n),且不使用除法;额外空间复杂度尽量为 O(1)(输出数组不计入额外空间)。原题链接:https://leetcode.cn/problems/product-of-array-except-self/难度等级:Medium相关标签:数组、前缀积、后缀积、空间优化、数学。
2025-10-02 21:00:48
899
原创 LeetCode 236. 二叉树的最近公共祖先 - 递归DFS与父指针法详解
题目描述:给定一棵二叉树的根节点 root,以及树中两个不同的节点 p 和 q,找到它们的最近公共祖先(Lowest Common Ancestor,LCA)。最近公共祖先定义为:对于节点 p 和 q,满足同时是 p、q 的祖先且深度最大的节点。注意:题目为一般二叉树,不能利用 BST 的有序性质。原题链接:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/难度等级:Medium。
2025-10-02 18:01:15
1099
原创 LeetCode 234. 回文链表 - 快慢指针与原地反转详解
题目描述:给定一个单链表的头节点 head,请判断该链表是否为回文链表(从前往后与从后往前的节点值序列相同),并返回布尔值结果。原题链接:https://leetcode.cn/problems/palindrome-linked-list/难度等级:Easy相关标签:链表、双指针、反转链表、栈、递归| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-10-02 15:00:43
814
原创 LeetCode 230. 二叉搜索树中第K小的元素 - 中序遍历与Morris遍历详解
题目描述:给定一棵二叉搜索树(BST)的根节点 root 和一个正整数 k,请你返回这棵树中第 k 小的元素值。二叉搜索树的中序遍历是有序的(严格升序或非降序,视重复值而定)。原题链接:https://leetcode.cn/problems/kth-smallest-element-in-a-bst/难度等级:Medium相关标签:二叉树、二叉搜索树、栈、递归、Morris 遍历、数据结构| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-10-02 12:01:02
1023
原创 LeetCode 226. 翻转二叉树 - DFS与BFS两种实现详解
题目描述:给定一棵二叉树,请将其每个节点的左右子树进行交换(镜像翻转),并返回翻转后的根节点。原题链接:https://leetcode.cn/problems/invert-binary-tree/难度等级:Easy相关标签:二叉树、递归、DFS、BFS、队列、栈、设计| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 || 递归 DFS | O(n) | O(h) | 代码简洁、易读 | 深度很大时可能栈溢出 | 绝大多数二叉树翻转、面试书写快捷 |
2025-10-02 09:00:32
709
原创 LeetCode 215. 数组中的第K个最大元素 - 快速选择与堆优化详解
题目描述:给定一个未排序的整数数组 nums 和一个整数 k,请你返回数组中第 k 个最大的元素。注意,这是按排序后的位置来定义的第 k 大(第 1 大是最大值),而不是第 k 个不同的元素。要求在尽可能低的时间复杂度下完成。原题链接:https://leetcode.cn/problems/kth-largest-element-in-an-array/难度等级:Medium相关标签:数组、分治、快速选择、堆(优先队列)、排序。
2025-10-01 21:02:03
887
原创 LeetCode 215. 数组中的第K个最大元素 - 快速选择与堆优化详解
题目描述:给定一个未排序的整数数组 nums 和一个整数 k,请你返回数组中第 k 个最大的元素。注意,这是按排序后的位置来定义的第 k 大(第 1 大是最大值),而不是第 k 个不同的元素。要求在尽可能低的时间复杂度下完成。原题链接:https://leetcode.cn/problems/kth-largest-element-in-an-array/难度等级:Medium相关标签:数组、分治、快速选择、堆(优先队列)、排序。
2025-10-01 21:01:10
1001
原创 LeetCode 208. 实现 Trie (前缀树) - 字典树设计与实现详解
题目描述:请你设计并实现一个 Trie(前缀树),支持如下操作:insert(word):向字典中插入字符串 wordsearch(word):如果字典中存在完全匹配的 word,返回 true;否则返回 falsestartsWith(prefix):如果字典中存在以 prefix 作为前缀的任意字符串,返回 true;否则返回 false题目默认测试用例为小写英文字母 a-z,但也可扩展到更广字符集。
2025-10-01 18:02:33
564
原创 LeetCode 208. 实现 Trie (前缀树) - 字典树设计与实现详解
题目描述:请你设计并实现一个 Trie(前缀树),支持如下操作:insert(word):向字典中插入字符串 wordsearch(word):如果字典中存在完全匹配的 word,返回 true;否则返回 falsestartsWith(prefix):如果字典中存在以 prefix 作为前缀的任意字符串,返回 true;否则返回 false题目默认测试用例为小写英文字母 a-z,但也可扩展到更广字符集。
2025-10-01 18:01:17
906
原创 LeetCode 208. 实现Trie(前缀树) - 前缀树设计与数组/哈希两实现详解
题目描述:请设计并实现一个 Trie(前缀树),用于插入单词、搜索完整单词和检查前缀。需要实现以下接口:insert(word):插入字符串 word;search(word):若 word 在 Trie 中,返回 true;否则返回 false;startsWith(prefix):若存在以 prefix 为前缀的单词,返回 true;否则返回 false。原题链接:https://leetcode.cn/problems/implement-trie-prefix-tree/
2025-10-01 15:01:05
798
原创 LeetCode 208. 实现Trie(前缀树) - 前缀树与哈希映射节点详解
题目描述:实现一个 Trie(前缀树)数据结构,支持:insert(word):插入一个字符串 word;search(word):搜索完整单词,存在则返回 true;startsWith(prefix):判断是否存在以 prefix 为前缀的任意单词,存在则返回 true。原题链接:https://leetcode.cn/problems/implement-trie-prefix-tree/难度等级:Medium相关标签:字符串、设计、前缀树、Trie、哈希表。
2025-10-01 12:00:50
567
原创 LeetCode 208. 实现Trie(前缀树) - 前缀树设计与数组/Map实现详解
题目描述:请你实现一个 Trie(前缀树),包含以下操作:insert(word):向字典中插入字符串 word;search(word):若字典中存在字符串 word,则返回 true;否则返回 false;startsWith(prefix):若字典中存在以 prefix 为前缀的任意字符串,则返回 true;否则返回 false。原题链接:https://leetcode.cn/problems/implement-trie-prefix-tree/难度等级:Medium。
2025-10-01 09:01:01
685
原创 LeetCode 208. 实现Trie(前缀树) - 前缀树设计与优化详解
题目描述:实现一个 Trie(前缀树)数据结构,支持以下操作:insert(word):插入字符串 word;search(word):搜索字符串 word 是否在字典中;startsWith(prefix):检查是否存在以 prefix 为前缀的字符串。假设输入均为小写英文字母 a-z。原题链接:https://leetcode.cn/problems/implement-trie-prefix-tree/难度等级:Medium。
2025-09-30 21:00:43
639
原创 LeetCode 208. 实现Trie(前缀树) - 前缀树设计与优化详解
题目描述:实现一个 Trie(前缀树),支持以下操作:insert(word):插入一个单词 word;search(word):如果单词在字典中,返回 true;否则返回 false;startsWith(prefix):如果存在以 prefix 为前缀的单词,返回 true;否则返回 false。原题链接:https://leetcode.cn/problems/implement-trie-prefix-tree/难度等级:Medium。
2025-09-29 12:01:01
1047
原创 LeetCode 207. 课程表 - 拓扑排序与DFS检测环详解
题目描述:给定课程总数 numCourses 和若干先修关系 prerequisites,其中 prerequisites[i] = [a, b] 表示“想要学习课程 a,必须先学习课程 b”。请判断是否能完成所有课程(即是否存在一种选课顺序覆盖全部课程)。原题链接:https://leetcode.cn/problems/course-schedule/难度等级:Medium相关标签:图、拓扑排序、BFS、DFS、有向图、环检测。
2025-09-29 09:01:30
1293
原创 LeetCode 206. 反转链表 - 迭代双指针与递归详解
题目描述:给定单链表的头节点 head,反转该链表并返回反转后的头节点。链表节点定义为:val、next。原题链接:https://leetcode.cn/problems/reverse-linked-list/难度等级:Easy相关标签:链表、双指针、递归、迭代、原地修改| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 || 迭代双指针(推荐) | O(n) | O(1) | 空间最优、实现稳健、工程友好 | 需谨慎维护三指针避免丢链 | 面试与工程首选 |
2025-09-28 21:01:06
828
原创 LeetCode 200. 岛屿数量 - DFS/BFS与并查集详解
题目描述:给定一个由字符 '1'(陆地)和 '0'(水)组成的 m x n 网格,计算岛屿的数量。岛屿被水包围,并且通过水平或垂直方向相邻的陆地连接而成。你可以假设网格的四个边均被水包围。原题链接:https://leetcode.cn/problems/number-of-islands/难度等级:Medium相关标签:图论、DFS、BFS、并查集、Flood Fill、网格搜索| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-09-28 15:22:14
680
原创 LeetCode 199. 二叉树的右视图 - BFS按层与DFS右优先详解
题目描述:给定二叉树根节点 root,返回从右侧看到的节点值序列。即对于每一层,从左到右的节点中选择最右侧的一个节点的值,按层从上到下输出。原题链接:https://leetcode.cn/problems/binary-tree-right-side-view/难度等级:Medium相关标签:二叉树、队列、BFS、DFS、递归、层序遍历、右视图| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-09-28 12:00:49
861
原创 LeetCode 198. 打家劫舍 - 动态规划与空间优化详解
题目描述:给定一排非负整数数组 nums,其中 nums[i] 表示第 i 间房屋存放的现金。相邻的两间房屋装有相互连通的防盗系统,如果在同一晚上抢劫了相邻的两间房屋,就会触发警报。请计算在不触动警报的情况下,今晚能够抢劫到的最高金额。原题链接:https://leetcode.cn/problems/house-robber/难度等级:Medium相关标签:数组、动态规划、滚动变量、状态压缩| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-09-28 09:00:48
1075
原创 LeetCode 189. 轮转数组 - 三段反转与循环置换详解
题目描述:给定整数数组 nums,将数组向右轮转 k 个位置(k ≥ 0)。右轮转即将每个元素移动到 (i + k) % n 的新位置。原题链接:https://leetcode.cn/problems/rotate-array/难度等级:Medium相关标签:数组、双指针、原地反转、循环置换| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-09-27 21:00:44
703
原创 LeetCode 169. 多数元素 - Boyer-Moore投票与哈希计数详解
题目描述:给定一个大小为 n 的整数数组 nums,返回其中出现次数超过 ⌊n/2⌋ 次的元素(多数元素)。题目保证多数元素一定存在。原题链接:https://leetcode.cn/problems/majority-element/难度等级:Easy相关标签:数组、哈希表、计数、Boyer-Moore 投票算法| 解法 | 时间复杂度 | 空间复杂度 | 优点 | 缺点 | 适用场景 |
2025-09-27 18:02:51
925
湖科大数据挖掘课设报告+源码,仅供大学学习参考
2022-12-12
前端页面网站源码集合,资源包有近四百套网站源码,各种类型都有,【滑稽狗头
2022-05-07
湖科大javaweb课程设计--图书管理系统
2022-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅