题目列表

可按标题、OJ、标签和启发记录快速筛选题目解析。

共 100 题
标题OJ题号标签难度最后更新原题
BFS 队列按当前层长度分组输出。
leetcodecnbinary-tree-level-order-traversal
二叉树BFScpppython
普及+/提高2026-07-29 13:10打开
递归返回向下最大贡献 max(0,child),经过点的两侧贡献更新全局答案。
leetcodecnbinary-tree-maximum-path-sum
二叉树树形DP递归cpppython
提高+/省选-2026-07-29 13:10打开
BFS 每层最后一个,或 DFS 先右后左首次到达深度时记录。
leetcodecnbinary-tree-right-side-view
二叉树BFSDFScpppython
普及+/提高2026-07-29 13:10打开
前序首元素是根,用哈希表定位中序分界,递归构造区间。
leetcodecnconstruct-binary-tree-from-preorder-and-inorder-traversal
二叉树递归哈希表cpppython
普及+/提高2026-07-29 13:10打开
取中点为根,递归构造左右半段,天然平衡。
leetcodecnconvert-sorted-array-to-binary-search-tree
BST递归分治cpppython
入门2026-07-29 13:10打开
建图 + Kahn 队列删入度为零节点,处理完全部节点即无环。
leetcodecncourse-schedule
拓扑排序BFScpppython
普及+/提高2026-07-29 13:10打开
反向 preorder 递归原地接 prev,所有 left 置空。
leetcodecnflatten-binary-tree-to-linked-list
二叉树DFScpppython
普及+/提高2026-07-29 13:10打开
每个字符沿 next[26] 走,节点维护终点标记。
leetcodecnimplement-trie-prefix-tree
Trie字典树设计cpppython
普及+/提高2026-07-29 13:10打开
BST 中序有序,迭代栈访问到第 k 个就停止。
leetcodecnkth-smallest-element-in-a-bst
BST中序cpppython
普及+/提高2026-07-29 13:10打开
后序返回是否找到 p/q;左右均找到则当前为 LCA。
leetcodecnlowest-common-ancestor-of-a-binary-tree
二叉树递归DFScpppython
普及+/提高2026-07-29 13:10打开
遇到未访问陆地就 DFS 淹没整块,计数加一。
leetcodecnnumber-of-islands
DFSBFS网格cpppython
普及+/提高2026-07-29 13:10打开
DFS 维护根到当前的前缀和,查 prefix - target 次数,回溯撤销。
leetcodecnpath-sum-iii
二叉树前缀和回溯cpppython
普及+/提高2026-07-29 13:10打开
每层选择未使用元素,swap 写法不重不漏。
leetcodecnpermutations
回溯DFS递归cpppython
普及+/提高2026-07-29 13:10打开
所有腐烂橘子同时入队,多源 BFS 按层传播,统计分钟。
leetcodecnrotting-oranges
BFS多源网格cpppython
普及+/提高2026-07-29 13:10打开
每个元素选/不选的 DFS,或枚举二进制 mask。
leetcodecnsubsets
回溯DFS位运算cpppython
普及+/提高2026-07-29 13:10打开
递归传 (low, high) 开区间,中序遍历必须严格递增。
leetcodecnvalidate-binary-search-tree
BST递归cpppython
普及+/提高2026-07-29 13:10打开
把值视为 next 指针,Floyd 找环入口即为重复数。
leetcodecnfind-the-duplicate-number
快慢指针链表技巧
提高+/省选-2026-07-29 13:04打开
从右找下降点,找最小更大后继交换,反转后缀。
leetcodecnnext-permutation
技巧排列
普及+/提高2026-07-29 13:03打开
三指针荷兰国旗:p0 指向 0 的右界,p2 指向 2 的左界,扫描指针交换后分类推进。
leetcodecnsort-colors
双指针排序
普及+/提高2026-07-29 13:02打开
Boyer-Moore 投票:计数器抵消非多数元素,最终留下的候选即为多数。
leetcodecnmajority-element
技巧投票算法
普及-2026-07-29 13:01打开
异或所有元素,成对元素异或为 0,最终结果即为只出现一次的数。
leetcodecnsingle-number
位运算技巧
入门2026-07-29 13:00打开
二维 DP:插入、删除、替换分别对应三个相邻状态转移,取最小值。
leetcodecnedit-distance
动态规划字符串
提高+/省选-2026-07-29 12:58打开
二维 DP:字符相等时 dp[i][j]=dp[i-1][j-1]+1,不等时取 max(dp[i-1][j], dp[i][j-1])。
leetcodecnlongest-common-subsequence
动态规划字符串
普及+/提高2026-07-29 12:57打开
中心扩展:枚举每个中心(奇偶),向两侧扩展直到不回文,记录最长。
leetcodecnlongest-palindromic-substring
字符串动态规划
普及+/提高2026-07-29 12:56打开
网格 DP:边界只能来自单方向,内部取上左较小值加上当前格。
leetcodecnminimum-path-sum
动态规划网格
普及-2026-07-29 12:55打开
网格 DP:首行首列初始化为 1,内部 dp[j] += dp[j-1] 即上方加左方。
leetcodecnunique-paths
动态规划组合数学
普及-2026-07-29 12:49打开
栈保存未匹配位置,弹出后用栈顶计算有效长度,栈空时压入当前右括号作为新边界。
leetcodecnlongest-valid-parentheses
动态规划字符串
提高+/省选-2026-07-29 12:48打开
0/1 背包判断能否凑满 sum/2,倒序更新避免重复使用元素。
leetcodecnpartition-equal-subset-sum
动态规划0/1背包
普及+/提高2026-07-29 12:47打开
同时维护以当前位置结尾的最大和最小乘积,负数交换两者,取全局最大。
leetcodecnmaximum-product-subarray
动态规划
普及+/提高2026-07-29 12:46打开
贪心+二分:tails 数组维护各长度子序列的最小结尾,lower_bound 更新保证严格递增。
leetcodecnlongest-increasing-subsequence
动态规划二分查找贪心
普及+/提高2026-07-29 12:45打开
dp[i] 表示前 i 个字符是否可拆分,枚举断点 j,若 dp[j] 且 s[j:i] 在字典中则 dp[i]=true。
leetcodecnword-break
动态规划字符串
普及+/提高2026-07-29 12:39打开
完全背包 DP:dp[i] 从所有硬币面额转移,取最小值,不可达用哨兵标记。
leetcodecncoin-change
动态规划完全背包
普及+/提高2026-07-29 12:38打开
完全背包 DP:dp[i] 从所有不超过 i 的平方数转移,取最小值。
leetcodecnperfect-squares
动态规划完全背包
普及/提高-2026-07-29 12:37打开
dp[i] 表示处理到第 i 间时的最大金额,偷当前则跳过前一间,不偷则继承前一间。
leetcodecnhouse-robber
动态规划递推
普及-2026-07-29 12:36打开
边界恒为 1,内部由上一行相邻两数相加,逐行递推生成。
leetcodecnpascals-triangle
动态规划递推
入门2026-07-29 12:35打开
Fibonacci 型递推:dp[i] = dp[i-1] + dp[i-2],初值 dp[1]=1, dp[2]=2。
leetcodecnclimbing-stairs
动态规划递推
入门2026-07-29 12:29打开
预处理每个字母最后出现位置,扫描时扩展当前段边界至段内所有字母最远末次位置,到达时切分。
leetcodecnpartition-labels
贪心字符串
普及+/提高2026-07-29 12:28打开
BFS 层次遍历思想:当前层边界与下一层最远位置确定跳跃次数。
leetcodecnjump-game-ii
贪心数组
普及+/提高2026-07-29 12:27打开
维护最远可达位置,扫描时不断扩展,若中途无法前进则不可达。
leetcodecnjump-game
贪心数组
普及/提高-2026-07-29 12:26打开
扫描时只用此前最低价计算今天卖出的收益,取最大值。
leetcodecnbest-time-to-buy-and-sell-stock
贪心数组
普及-2026-07-29 12:25打开
两个堆维护数据流:大顶堆存较小半,小顶堆存较大半,堆顶即为中位数候选。
leetcodecnfind-median-from-data-stream
优先队列数据结构
提高+/省选-2026-07-29 12:20打开
统计频次后排序取前 k,或用大小为 k 的最小堆保留频次最高的 k 个。
leetcodecntop-k-frequent-elements
排序哈希表
普及+/提高2026-07-29 12:18打开
维护大小为 k 的最小堆,堆顶即为第 k 大元素。
leetcodecnkth-largest-element-in-an-array
优先队列排序
普及+/提高2026-07-29 12:15打开
单调栈弹出时左右第一个更矮位置决定宽度,高度乘宽度即为面积,末尾补 0 清算剩余。
leetcodecnlargest-rectangle-in-histogram
单调栈
提高+/省选-2026-07-29 12:12打开
单调栈保存尚未遇到更高温度的下标,弹出时计算距离即为等待天数。
leetcodecndaily-temperatures
单调栈
普及+/提高2026-07-29 12:10打开
遇到 [ 时保存当前字符串和次数到栈,遇到 ] 时弹出并拼接重复结果,处理嵌套编码。
leetcodecndecode-string
字符串
普及+/提高2026-07-29 12:08打开
每个元素同时保存当前值和截至该层的最小值,getMin 直接读栈顶的 min 字段。
leetcodecnmin-stack
数据结构
普及-2026-07-29 12:05打开
栈匹配:左括号入栈,右括号必须与栈顶严格配对,最终栈空则合法。
leetcodecnvalid-parentheses
字符串
入门2026-07-29 12:02打开
在较短数组上二分分割线,满足左半最大 ≤ 右半最小,由四个边界值计算中位数。
leetcodecnmedian-of-two-sorted-arrays
二分查找数组
提高+/省选-2026-07-29 11:58打开
比较中点与右端点,保留最小值所在闭区间,最终 l 指向最小元素。
leetcodecnfind-minimum-in-rotated-sorted-array
二分查找数组
普及+/提高2026-07-29 11:55打开
每轮二分判断哪一半有序,再判断 target 是否落在该半区,缩小搜索范围。
leetcodecnsearch-in-rotated-sorted-array
二分查找数组
普及+/提高2026-07-29 11:52打开
把二维下标映射到一维有序序列,一次二分查找 target。
leetcodecnsearch-a-2d-matrix
二分查找矩阵
普及-2026-07-29 11:48打开
二分查找 lower_bound,返回第一个 ≥ target 的位置,即插入位置。
leetcodecnsearch-insert-position
二分查找数组
普及-2026-07-29 11:45打开
逐行放置皇后,用三个数组(列、主对角线、副对角线)检测冲突,回溯搜索所有合法方案。
leetcodecnn-queens
回溯枚举递归
普及+/提高2026-07-29 11:40打开
回溯枚举每段终点,只递归回文前缀,预处理区间回文表加速判断。
leetcodecnpalindrome-partitioning
回溯枚举字符串动态规划
普及+/提高2026-07-29 11:35打开
DFS 搜索路径,进入格子后标记已访问防止复用,递归后恢复现场,四方向扩展匹配下一个字符。
leetcodecnword-search
回溯搜索DFS网格
普及+/提高2026-07-29 11:30打开
回溯生成括号组合,open < n 放左括号,close < open 放右括号,保证前缀合法。
leetcodecngenerate-parentheses
回溯枚举递归字符串
普及+/提高2026-07-29 11:25打开
回溯枚举每个候选数选或不选、选几次,允许重复使用当前数后再推进到下一个候选数。
leetcodecncombination-sum
回溯枚举递归
普及+/提高2026-07-29 11:20打开
回溯枚举每个数字对应的字母选择,递归层数对应数字位置,每层分支数由按键映射决定。
leetcodecnletter-combinations-of-a-phone-number
回溯枚举递归
普及/提高-2026-07-29 11:15打开
两次二分分别找 target 的 lower_bound 与 upper_bound-1,组合得到起止位置。
leetcodecnfind-first-and-last-position-of-element-in-sorted-array
二分查找数组
普及+/提高2026-07-29 11:05打开