总规则(每天照做)
-
热身 10 分钟:复习当天题型模板(看你自己的笔记/我给你的模板也行)
-
做题 2 题(计时) :第 1 题标准,第 2 题变形
- Easy:15 分钟上限;Medium:25 分钟上限
-
复盘 10–15 分钟:写 4 行
- 题型 & 触发关键词
- 模板骨架
- bug/卡点
- 可复用一句话
每周留 1 天做模拟 + 补弱,不再新增题型。
第 1 周:数组/字符串核心(面试最值钱)
目标:哈希、双指针、滑窗、前缀和能“条件反射”。
Day1 哈希表
- 两数之和类、频次统计、去重
- 练 2 题:Two Sum + 一个“字母异位词/频次”类
Day2 前缀和 + 哈希
- 子数组和为 K、最长/最短满足条件(非滑窗那种)
- 练 2 题:Subarray Sum Equals K + 一个变形(0/1 转换、计数)
Day3 双指针(相向)
- 有序数组、去重、三数和套路
- 练 2 题:Remove Duplicates / Two Sum II + 3Sum/变形
Day4 双指针(同向)/快慢指针
- 链表/数组快慢指针、环、删除
- 练 2 题:Linked List Cycle + Remove Nth / 变形
Day5 滑动窗口(固定模板)
- 最长无重复、最多 K 次、替换、最短覆盖
- 练 2 题:Longest Substring Without Repeating + 变形(K distinct / 替换)
Day6 排序 + 区间
- 合并区间、会议室、区间覆盖
- 练 2 题:Merge Intervals + Meeting Rooms/Insert Interval
Day7 周复盘 + 模拟(1 次)
- 选 Medium 2 题,严格按面试流程(讲解 5 分钟 + 写 20 分钟 + 测 5 分钟)
- 把本周最常错的 3 个点写成“防错清单”
第 2 周:二分 + 栈/队列(面试高频杀器)
目标:二分边界写不崩,单调栈会套。
Day8 二分:精确查找 & 插入位置
- 练 2 题:Binary Search + Search Insert Position
Day9 二分:找边界(first/last)
- 练 2 题:Find First and Last Position + 变形(count occurrences)
Day10 二分:最小可行(答案二分)
- 关键词:最大最小化、最小最大化、可行性
- 练 2 题:Koko Eating Bananas + Ship Within Days(同套路)
Day11 栈:括号 + 表达式
- 练 2 题:Valid Parentheses + Min Stack / Daily Temperatures(若想进阶)
Day12 单调栈(Next Greater / 温度 / 股票跨度)
- 练 2 题:Daily Temperatures + Next Greater Element II
Day13 单调队列(滑窗最大值)
- 练 2 题:Sliding Window Maximum + 变形
Day14 周复盘 + 模拟(1 次)
- Medium 2 题:1 个二分边界 + 1 个单调栈
- 总结“二分模板 + 单调栈模板”各 10 行以内手写版本
第 3 周:树 / BFS / DFS(大厂常规)
目标:树题 80% 都是 DFS/BFS 变形;会定义递归含义。
Day15 二叉树遍历(递归含义)
- 练 2 题:Max Depth + Inorder Traversal(迭代/递归任选)
Day16 路径类 DFS
- 练 2 题:Path Sum + Binary Tree Paths / 变形
Day17 最近公共祖先 LCA
- 练 2 题:LCA of BST + LCA of Binary Tree
Day18 层序 BFS
- 练 2 题:Level Order Traversal + Zigzag / Right Side View
Day19 树的“构造/序列化思维”(可选但很值)
- 练 2 题:Construct Tree from preorder+inorder + Serialize/Deserialize(若难就换成“验证 BST”)
Day20 图/BFS 最短路(网格题)
- 练 2 题:Number of Islands(DFS/BFS) + Rotting Oranges / Shortest Path in Binary Matrix
Day21 周复盘 + 模拟(1 次)
- Medium 2 题:1 个树 DFS + 1 个网格 BFS
- 输出“DFS 三件套”:递归定义、终止条件、回溯撤销
第 4 周:DP 高频 + 综合模拟(冲刺上岸)
目标:只学高频 DP 模板,不陷入“DP 题海”。
Day22 一维 DP(爬楼梯/打家劫舍)
- 练 2 题:Climbing Stairs + House Robber
Day23 子序列 DP(最大子数组/最长递增)
- 练 2 题:Maximum Subarray + LIS(LIS 可先 O(n^2),有余力再学 O(nlogn))
Day24 背包雏形(能应付面试)
- 练 2 题:Coin Change + Partition Equal Subset Sum
Day25 DP + 字符串(常考)
- 练 2 题:Longest Palindromic Substring / Decode Ways(任选其一做变形)
Day26 综合回炉:你最弱的 2 类题型
- 每类 2 题,共 4 题(可分两次做)
Day27 模拟面试 2 次(非常关键)
- 每次 1 题 Medium(限时 30 分钟全流程)
- 复盘:表达是否清晰、边界是否讲到、代码是否一遍过
Day28 总复习:高频题型 checklist
-
把你所有模板压缩成 1 页纸:
- 滑窗、二分边界、单调栈、DFS、BFS、前缀和、DP 一维