acm路线

4 阅读3分钟

8 周学习路线(每周必刷 + 加练)

必刷是核心面试高频;时间富余再做加练。题号按 LeetCode。


第 1 周:数组 / 哈希 / 前缀和 / 双指针(地基)

必刷(8)

  • 1 Two Sum
  • 238 Product of Array Except Self
  • 560 Subarray Sum Equals K(前缀和 + 哈希)
  • 53 Maximum Subarray(Kadane)
  • 15 3Sum(排序 + 双指针)
  • 88 Merge Sorted Array
  • 283 Move Zeroes
  • 42 Trapping Rain Water(双指针/单调栈二选一)

加练(2-3)

  • 11 Container With Most Water
  • 189 Rotate Array

第 2 周:滑动窗口 + 区间(连续子串/子数组必考)

必刷(8)

  • 3 Longest Substring Without Repeating Characters
  • 438 Find All Anagrams in a String
  • 76 Minimum Window Substring(高频硬题,至少做懂)
  • 209 Minimum Size Subarray Sum
  • 424 Longest Repeating Character Replacement
  • 567 Permutation in String
  • 56 Merge Intervals
  • 986 Interval List Intersections

加练

  • 239 Sliding Window Maximum(单调队列,社招很值)

第 3 周:链表 + 栈 + 单调栈(结构题高频)

必刷(8)

  • 206 Reverse Linked List
  • 92 Reverse Linked List II
  • 141 Linked List Cycle
  • 142 Linked List Cycle II
  • 21 Merge Two Sorted Lists
  • 20 Valid Parentheses
  • 155 Min Stack
  • 739 Daily Temperatures(单调栈)

加练

  • 84 Largest Rectangle in Histogram(单调栈硬题)
  • 23 Merge k Sorted Lists(堆/分治,社招常见)

第 4 周:二分(含“答案二分”)——社招最常考之一

必刷(8)

  • 704 Binary Search
  • 34 Find First and Last Position of Element
  • 33 Search in Rotated Sorted Array
  • 153 Find Minimum in Rotated Sorted Array
  • 875 Koko Eating Bananas(答案二分)
  • 1011 Capacity To Ship Packages Within D Days(答案二分)
  • 162 Find Peak Element
  • 240 Search a 2D Matrix II

加练

  • 410 Split Array Largest Sum(更难的答案二分/DP)

第 5 周:二叉树(DFS/BFS/LCA/BST)

必刷(9)

  • 144/94/145 二叉树前中后序(至少掌握一种迭代)
  • 102 Binary Tree Level Order Traversal
  • 104 Maximum Depth of Binary Tree
  • 226 Invert Binary Tree
  • 543 Diameter of Binary Tree
  • 110 Balanced Binary Tree
  • 98 Validate Binary Search Tree
  • 236 Lowest Common Ancestor of a Binary Tree

加练

  • 437 Path Sum III(前缀和思想迁移到树)
  • 124 Binary Tree Maximum Path Sum(偏难但很值)

第 6 周:图(BFS/DFS/拓扑/并查集)

必刷(9)

  • 200 Number of Islands(DFS/BFS)
  • 695 Max Area of Island
  • 994 Rotting Oranges(BFS)
  • 207 Course Schedule(拓扑)
  • 210 Course Schedule II(拓扑输出序列)
  • 684 Redundant Connection(并查集)
  • 547 Number of Provinces(并查集/DFS)
  • 127 Word Ladder(BFS,社招常见)
  • 433 Minimum Genetic Mutation(BFS,练模板)

加练

  • 399 Evaluate Division(图 + DFS/BFS)
  • 743 Network Delay Time(Dijkstra,模板题)

第 7 周:DP 基础(社招最容易拉开差距)

必刷(10)

  • 70 Climbing Stairs
  • 198 House Robber
  • 213 House Robber II
  • 322 Coin Change(完全背包)
  • 416 Partition Equal Subset Sum(0/1背包)
  • 300 Longest Increasing Subsequence(DP/二分都可)
  • 1143 Longest Common Subsequence(二维DP)
  • 62 Unique Paths
  • 64 Minimum Path Sum
  • 91 Decode Ways

加练

  • 72 Edit Distance(经典二维DP)

第 8 周:贪心 + 回溯 + 总复盘(冲刺面试表达)

必刷(8)

  • 121 Best Time to Buy and Sell Stock
  • 55 Jump Game
  • 45 Jump Game II(贪心)
  • 406 Queue Reconstruction by Height(排序贪心)
  • 46 Permutations(回溯)
  • 78 Subsets(回溯)
  • 39 Combination Sum(回溯)
  • 22 Generate Parentheses(回溯)

加练

  • 739/84/239 回炉(单调结构类你会更稳)