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 回炉(单调结构类你会更稳)