题目列表
可按标题、OJ、标签和启发记录快速筛选题目解析。
| 标题 | OJ | 题号 | 标签 | 难度 | 最后更新 | 原题 |
|---|---|---|---|---|---|---|
维护大小为 k 的最小堆,堆顶即为第 k 大元素。 | leetcodecn | kth-largest-element-in-an-array | 普及+/提高 | 2026-07-29 12:15 | 打开 | |
单调栈弹出时左右第一个更矮位置决定宽度,高度乘宽度即为面积,末尾补 0 清算剩余。 | leetcodecn | largest-rectangle-in-histogram | 提高+/省选- | 2026-07-29 12:12 | 打开 | |
单调栈保存尚未遇到更高温度的下标,弹出时计算距离即为等待天数。 | leetcodecn | daily-temperatures | 普及+/提高 | 2026-07-29 12:10 | 打开 | |
遇到 [ 时保存当前字符串和次数到栈,遇到 ] 时弹出并拼接重复结果,处理嵌套编码。 | leetcodecn | decode-string | 普及+/提高 | 2026-07-29 12:08 | 打开 | |
每个元素同时保存当前值和截至该层的最小值,getMin 直接读栈顶的 min 字段。 | leetcodecn | min-stack | 普及- | 2026-07-29 12:05 | 打开 | |
栈匹配:左括号入栈,右括号必须与栈顶严格配对,最终栈空则合法。 | leetcodecn | valid-parentheses | 入门 | 2026-07-29 12:02 | 打开 | |
在较短数组上二分分割线,满足左半最大 ≤ 右半最小,由四个边界值计算中位数。 | leetcodecn | median-of-two-sorted-arrays | 提高+/省选- | 2026-07-29 11:58 | 打开 | |
比较中点与右端点,保留最小值所在闭区间,最终 l 指向最小元素。 | leetcodecn | find-minimum-in-rotated-sorted-array | 普及+/提高 | 2026-07-29 11:55 | 打开 | |
每轮二分判断哪一半有序,再判断 target 是否落在该半区,缩小搜索范围。 | leetcodecn | search-in-rotated-sorted-array | 普及+/提高 | 2026-07-29 11:52 | 打开 | |
把二维下标映射到一维有序序列,一次二分查找 target。 | leetcodecn | search-a-2d-matrix | 普及- | 2026-07-29 11:48 | 打开 | |
二分查找 lower_bound,返回第一个 ≥ target 的位置,即插入位置。 | leetcodecn | search-insert-position | 普及- | 2026-07-29 11:45 | 打开 | |
逐行放置皇后,用三个数组(列、主对角线、副对角线)检测冲突,回溯搜索所有合法方案。 | leetcodecn | n-queens | 普及+/提高 | 2026-07-29 11:40 | 打开 | |
回溯枚举每段终点,只递归回文前缀,预处理区间回文表加速判断。 | leetcodecn | palindrome-partitioning | 普及+/提高 | 2026-07-29 11:35 | 打开 | |
DFS 搜索路径,进入格子后标记已访问防止复用,递归后恢复现场,四方向扩展匹配下一个字符。 | leetcodecn | word-search | 普及+/提高 | 2026-07-29 11:30 | 打开 | |
回溯生成括号组合,open < n 放左括号,close < open 放右括号,保证前缀合法。 | leetcodecn | generate-parentheses | 普及+/提高 | 2026-07-29 11:25 | 打开 | |
回溯枚举每个候选数选或不选、选几次,允许重复使用当前数后再推进到下一个候选数。 | leetcodecn | combination-sum | 普及+/提高 | 2026-07-29 11:20 | 打开 | |
回溯枚举每个数字对应的字母选择,递归层数对应数字位置,每层分支数由按键映射决定。 | leetcodecn | letter-combinations-of-a-phone-number | 普及/提高- | 2026-07-29 11:15 | 打开 | |
两次二分分别找 target 的 lower_bound 与 upper_bound-1,组合得到起止位置。 | leetcodecn | find-first-and-last-position-of-element-in-sorted-array | 普及+/提高 | 2026-07-29 11:05 | 打开 | |
同步遍历两链表和进位,节点值写 sum % 10,末尾保留 carry。 | leetcodecn | add-two-numbers | 普及+/提高 | 2026-07-28 22:05 | 打开 | |
左根右;递归或显式栈模拟递归。 | leetcodecn | binary-tree-inorder-traversal | 入门 | 2026-07-28 22:05 | 打开 | |
哈希表映射旧节点到新节点,第二遍补 next/random 引用。 | leetcodecn | copy-list-with-random-pointer | 普及+/提高 | 2026-07-28 22:05 | 打开 | |
后序返回高度,经过当前点的候选为 left+right,全局取最大。 | leetcodecn | diameter-of-binary-tree | 入门 | 2026-07-28 22:05 | 打开 | |
固定长度滑动窗口维护 26 维字母计数,窗口进出各一次,O(n)。 | leetcodecn | find-all-anagrams-in-a-string | 普及+/提高 | 2026-07-28 22:05 | 打开 | |
把值 x 放到下标 x-1,最后第一个 a[i] != i+1 即答案,O(n) 时间 O(1) 空间。 | leetcodecn | first-missing-positive | 提高+/省选- | 2026-07-28 22:05 | 打开 | |
双指针分别走 A+B 和 B+A,长度差被抵消后在交点或 nullptr 相遇。 | leetcodecn | intersection-of-two-linked-lists | 入门 | 2026-07-28 22:05 | 打开 | |
后序/前序递归交换左右子树。 | leetcodecn | invert-binary-tree | 入门 | 2026-07-28 22:05 | 打开 | |
Floyd 判环后,从头和相遇点各走一步,第二次相遇即入环点。 | leetcodecn | linked-list-cycle-ii | 普及+/提高 | 2026-07-28 22:05 | 打开 | |
Floyd 快慢指针,slow 走一步 fast 走两步,相遇则有环。 | leetcodecn | linked-list-cycle | 入门 | 2026-07-28 22:05 | 打开 | |
滑动窗口记录字符上次出现位置,左指针直接跳到重复字符后,O(n)。 | leetcodecn | longest-substring-without-repeating-characters | 普及+/提高 | 2026-07-28 22:05 | 打开 | |
哈希表 O(1) 找节点,双向链表按最近使用顺序维护,头为新、尾为旧。 | leetcodecn | lru-cache | 普及+/提高 | 2026-07-28 22:05 | 打开 | |
1 + max(left, right) 递归。 | leetcodecn | maximum-depth-of-binary-tree | 入门 | 2026-07-28 22:05 | 打开 | |
Kadane 算法:以 i 结尾的最大和 = max(a[i], dp[i-1] + a[i]),滚动 O(1) 空间。 | leetcodecn | maximum-subarray | 普及+/提高 | 2026-07-28 22:05 | 打开 | |
按左端点排序,遍历时维护当前合并区间,相交则扩右端,否则输出并重开。 | leetcodecn | merge-intervals | 普及+/提高 | 2026-07-28 22:05 | 打开 | |
小根堆维护每条链当前头节点,每次弹出后推进,O(N log K)。 | leetcodecn | merge-k-sorted-lists | 提高+/省选- | 2026-07-28 22:05 | 打开 | |
dummy 头结点,每次接入较小节点,最后接剩余链。 | leetcodecn | merge-two-sorted-lists | 入门 | 2026-07-28 22:05 | 打开 | |
滑动窗口维护 need/have 计数,右端扩张满足需求,左端收缩到刚好不满足,O(n)。 | leetcodecn | minimum-window-substring | 提高+/省选- | 2026-07-28 22:05 | 打开 | |
快慢指针找中点,反转后半段,与前半段比较,O(n) O(1)。 | leetcodecn | palindrome-linked-list | 入门 | 2026-07-28 22:05 | 打开 | |
结果先存左侧前缀积,再乘右侧后缀积,O(n) 时间 O(1) 额外空间。 | leetcodecn | product-of-array-except-self | 普及+/提高 | 2026-07-28 22:05 | 打开 | |
dummy + 快慢指针相距 n+1,快指针到尾时慢指针在待删节点前一位。 | leetcodecn | remove-nth-node-from-end-of-list | 普及+/提高 | 2026-07-28 22:05 | 打开 | |
prev/cur/next 三指针逐节点反转,同时保留后续节点引用。 | leetcodecn | reverse-linked-list | 入门 | 2026-07-28 22:05 | 打开 | |
先找第 k 个节点,翻转这一段并接回;不足 k 段保持原样。 | leetcodecn | reverse-nodes-in-k-group | 提高+/省选- | 2026-07-28 22:05 | 打开 | |
三次反转:整体反转,再分别反转前 k 和后 n-k;先取 k %= n。 | leetcodecn | rotate-array | 普及+/提高 | 2026-07-28 22:05 | 打开 | |
先沿主对角线转置,再逐行反转;原地旋转 90 度顺时针,O(n²) O(1)。 | leetcodecn | rotate-image | 普及+/提高 | 2026-07-28 22:05 | 打开 | |
从右上角出发,小于 target 向下,大于 target 向左,每步排除一行或一列,O(m+n)。 | leetcodecn | search-a-2d-matrix-ii | 普及+/提高 | 2026-07-28 22:05 | 打开 | |
用首行/首列充当标记位,先记录首行首列是否含零,再标记并回填,O(1) 额外空间。 | leetcodecn | set-matrix-zeroes | 普及+/提高 | 2026-07-28 22:05 | 打开 | |
单调递减队列保存候选下标,过期从队首删,较小候选从队尾删,O(n)。 | leetcodecn | sliding-window-maximum | 提高+/省选- | 2026-07-28 22:05 | 打开 | |
快慢指针拆半,递归归并排序,O(n log n) 时间 O(log n) 递归空间。 | leetcodecn | sort-list | 普及+/提高 | 2026-07-28 22:05 | 打开 | |
维护 top/bottom/left/right 四条边,按右/下/左/上收缩并检查边界,避免单行/单列重复。 | leetcodecn | spiral-matrix | 普及+/提高 | 2026-07-28 22:05 | 打开 | |
前缀和 + 哈希表统计历史前缀出现次数,边扫边累计答案,O(n)。 | leetcodecn | subarray-sum-equals-k | 普及+/提高 | 2026-07-28 22:05 | 打开 | |
dummy + prev/a/b/next 四指针每轮重连已交换段和待处理段。 | leetcodecn | swap-nodes-in-pairs | 普及+/提高 | 2026-07-28 22:05 | 打开 | |
定义 mirror(a,b):值相等且 a.left 对 b.right、a.right 对 b.left。 | leetcodecn | symmetric-tree | 入门 | 2026-07-28 22:05 | 打开 | |
双指针维护左右最高柱,较矮侧水量可立即确定,O(n) 时间 O(1) 空间。 | leetcodecn | trapping-rain-water | 提高+/省选- | 2026-07-28 22:05 | 打开 | |
排序后固定第一个数,剩余区间用双指针,跳过相同值去重,O(n²)。 | leetcodecn | 3sum | 普及+/提高 | 2026-07-28 22:03 | 打开 | |
双指针维护区间,面积由短板决定,每次移动较矮一侧,O(n)。 | leetcodecn | container-with-most-water | 普及+/提高 | 2026-07-28 22:03 | 打开 | |
双指针:write 指针收集非零元素,剩余补零,保持非零相对顺序。 | leetcodecn | move-zeroes | 入门 | 2026-07-28 22:03 | 打开 | |
放入集合,只从 x-1 不存在的起点向后扩展,每个数至多被访问一次,均摊 O(n)。 | leetcodecn | longest-consecutive-sequence | 普及+/提高 | 2026-07-28 22:01 | 打开 | |
为每个单词构造 26 字母计数 key,哈希到同一组;异位词一定有相同的字母构成。 | leetcodecn | group-anagrams | 普及+/提高 | 2026-07-28 21:58 | 打开 | |
遍历数组时用哈希表保存值到下标的映射,在线查找当前数所需的补数。 | leetcodecn | two-sum | 入门 | 2026-07-28 18:13 | 打开 | |
用按高度滚动的动态规划合并连续点击与重力转移,并在管道位置过滤非法高度。 | luogu | P1941 | 普及+/提高 | 2026-07-24 17:47 | 打开 | |
用 Python 整数位集加速 Warshall 传递闭包。 | luogu | B3611 | 普及 | 2026-07-17 03:00 | 打开 |