| LRU缓存 | | |
| K个一组翻转链表 | | 每K个节点为一组进行翻转,不足K个则直接返回;递归连接各组结果 |
| 合并K个升序链表 | | 所有链表头节点入堆;每次弹出最小节点并链接,将其下一节点入堆 |
| 无重复字符的最长子串 | | 右指针扩展窗口,遇重复字符时左指针收缩至重复字符移出窗口 |
| 接雨水(Hard) | | 当前位置接水量 = min(左边最大高度, 右边最大高度) - 当前高度 |
| 二叉树的最近公共祖先(LCA) | | 若左右子树均找到目标节点,则当前根为结果;否则返回非空子树的结果 |
| 岛屿数量 | | 遇'1'计数加一并DFS将相邻'1'全部标记为'0'(炸沉) |
| 最长公共子序列(LCS) | | 字符相等:dp[i][j] = dp[i-1][j-1] + 1;否则取max(左, 上) |
| 搜索旋转排序数组 | | 每次二分必有一半有序;判断目标是否在有序区间内,否则搜索另一半 |
| 下一个排列 | | 1. 从后往前找第一个降序数A 2. 找刚好大于A的数B 3. 交换AB 4. 翻转A后序列 |