acm

0 阅读4分钟

总规则(每天照做)

  • 热身 10 分钟:复习当天题型模板(看你自己的笔记/我给你的模板也行)

  • 做题 2 题(计时) :第 1 题标准,第 2 题变形

    • Easy:15 分钟上限;Medium:25 分钟上限
  • 复盘 10–15 分钟:写 4 行

    1. 题型 & 触发关键词
    2. 模板骨架
    3. bug/卡点
    4. 可复用一句话

每周留 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 一维