算法刷题

算法刷题记录与掌握度追踪

38 总题数
4 本周新增
9 Easy
23 Medium
6 Hard
13 熟悉
8 需复习

掌握度分布

熟悉
13
了解
17
需复习
8

分类标签

array 16
two-pointers 14
linked-list 14
hashmap 9
recursion 7
sorting 4
matrix 4
binary-tree 4
dfs 4
prefix-sum 3

刷题记录

2026-08-26 Wednesday

37. Path Sum III LeetCode Medium 了解

解法一:双重 DFS(外层 dfs 枚举起点,内层 findTarget 沿路径累计 sum)

binary-tree dfs recursion

解法二:前缀和 + 哈希表,dfs 一次遍历记录 s,命中 cnt[s-target] 即路径,回溯撤销

binary-tree dfs recursion hashmap prefix-sum

2026-08-24 Monday

34. Maximum Depth of Binary Tree LeetCode Easy 需复习

两种 DFS:递归子问题(左右深度+1 取大)/ 全局变量比较 max

binary-tree dfs recursion

DFS 递归中序遍历(左→根→右),带 ACM 模式建树 main

binary-tree dfs recursion

2026-08-21 Friday

36. LRU Cache LeetCode Medium 需复习

哈希表 + 双向链表 O(1),头尾哨兵节点,get/put 移到头部

design hashmap linked-list

2026-08-20 Thursday

32. Sort List LeetCode Medium 需复习

链表归并排序:快慢指针找中点拆两半,分治排序后 merge,注意 fast 起点快一个取左中点

linked-list sorting divide-and-conquer two-pointers
33. Merge k Sorted Lists LeetCode Hard 需复习

最小堆:k 条链表头入堆,循环取堆顶接虚拟头,取出后把该链表下一个节点再入堆

linked-list heap divide-and-conquer

2026-08-19 Wednesday

30. Copy List with Random Pointer LeetCode Medium 需复习

哈希表 old_to_new 第一遍复制节点,第二遍连 next/random 指针

linked-list hashmap
31. Reverse Nodes in k-Group LeetCode Hard 需复习

虚拟头节点 + 每 k 个一组局部反转,不足 k 个直接返回

linked-list recursion

2026-08-18 Tuesday

先遍历算长度,虚拟头节点走到 size-n 位置删除;dummy 处理删头节点的情况

linked-list two-pointers
29. Swap Nodes in Pairs LeetCode Medium 熟悉

虚拟头节点 + 三指针 prev/first/second 两两交换相邻节点,注意奇数节点时的终止条件

linked-list two-pointers

2026-08-17 Monday

26. Add Two Numbers LeetCode Medium 熟悉

链表逐位相加,carry 进位,注意最高位的进位

linked-list math
27. Merge Two Sorted Lists LeetCode Easy 熟悉

虚拟头节点 + 双指针归并;递归写法更简洁

linked-list two-pointers recursion

2026-08-16 Sunday

24. Linked List Cycle LeetCode Easy 熟悉

快慢指针判环:slow 走一步 fast 走两步,相遇即有环;也可用哈希集合记录访问过的节点

linked-list two-pointers hashset
25. Linked List Cycle II LeetCode Medium 需复习

判环后找入口:相遇点与头节点同步各走一步,再次相遇即环入口;需理解相遇点到入口的距离关系

linked-list two-pointers hashset

2026-08-14 Friday

21. Reverse Linked List LeetCode Easy 熟悉

迭代三指针反转:prev/cur/nex 逐个翻转指向

linked-list
22. Palindrome Linked List LeetCode Easy 熟悉

两种写法:递归回溯前后比较 / 快慢指针找中点+反转后半段比较,注意奇偶中点差异

linked-list two-pointers recursion

2026-07-13 Monday

23. Intersection of Two Linked Lists LeetCode Medium 需复习

哈希集合存 A 节点再遍历 B 找首个命中;双指针法可 O(1) 空间

linked-list hashset two-pointers

2026-07-06 Monday

17. Set Matrix Zeroes LeetCode Medium 了解

用首行首列做标记位,O(1) 额外空间

array matrix in-place
18. Spiral Matrix LeetCode Medium 熟悉

按上下左右四条边走,走过的移除,每轮访问四条边界

array matrix simulation
19. Rotate Image LeetCode Medium 了解

原地旋转,先水平翻转再沿主对角线翻转,等价于 90° 顺时针

array matrix math
20. Search a 2D Matrix II LeetCode Medium 了解

从右上角开始,比 target 大左移,比 target 大下移,O(m+n)

array matrix binary-search

2026-07-05 Sunday

12. Maximum Subarray LeetCode Medium 了解

动态规划,pre = max(pre + x, x),pre 表示以当前数结尾的最大和

array dp subarray
13. Merge Intervals LeetCode Medium 了解

排序 + 贪心,按左端点排序后遍历,重叠就更新右端点

array sorting greedy intervals
14. Rotate Array LeetCode Medium 熟悉

三次反转:整体反转 + 前 k 反转 + 后 n-k 反转,注意 k %= n

array two-pointers math
15. Product of Array Except Self LeetCode Medium 了解

左右乘积数组 L[i]*R[i],空间可优化到 O(1)

array prefix-product
16. First Missing Positive LeetCode Hard 了解

原地哈希:把 <=0 的数改成 n+1,再对 [1,n] 用负号打标记,第一个正数位置 i+1 即答案

array hashmap in-place

2026-06-18 Thursday

前缀和数组 s[i+1]=s[i]+nums[i],查询 O(1):s[right+1]-s[left]

prefix-sum array design
9. Subarray Sum Equals K LeetCode Medium 了解

前缀和 + 哈希表,统计 s[j]-k 出现次数

prefix-sum hashmap subarray
10. Minimum Window Substring LeetCode Hard 了解

滑动窗口,r 扩张找可行解,l 收缩优化,注意 size() 无符号数陷阱

sliding-window hashmap string two-pointers
11. Sliding Window Maximum LeetCode Hard 了解

单调队列(双端队列),队头存当前窗口最大值

monotonic-queue sliding-window deque

2026-06-17 Wednesday

6. 3Sum LeetCode Medium 了解

排序+双指针,注意去重

array two-pointers sorting
7. Trapping Rain Water LeetCode Hard 熟悉

双指针左右夹逼,lmax 和 rmax 取较小的一边累计

array two-pointers stack

2026-06-16 Tuesday

4. Container With Most Water LeetCode Medium 了解

双指针从两端向中间收敛,每次移动短板

array two-pointers
5. Move Zeroes LeetCode Easy 了解

快慢指针,慢指针左侧都是非零数

array two-pointers

2026-06-15 Monday

1. Two Sum LeetCode Easy 熟悉

哈希表一次遍历 O(n),注意 unordered_map 用法

array hashmap
2. Group Anagrams LeetCode Medium 熟悉

对每个字符串排序作为 key,哈希表分组

hashmap string sorting
3. Longest Consecutive Sequence LeetCode Medium 了解

哈希表存端点,只从连续序列起点开始计数 O(n)

hashmap array