算法刷题
算法刷题记录与掌握度追踪
20
总题数
0
本周新增
3
Easy
13
Medium
4
Hard
5
熟悉
0
需复习
掌握度分布
刷题记录
2026-07-06 Monday
用首行首列做标记位,O(1) 额外空间
按上下左右四条边走,走过的移除,每轮访问四条边界
原地旋转,先水平翻转再沿主对角线翻转,等价于 90° 顺时针
从右上角开始,比 target 大左移,比 target 大下移,O(m+n)
2026-07-05 Sunday
动态规划,pre = max(pre + x, x),pre 表示以当前数结尾的最大和
排序 + 贪心,按左端点排序后遍历,重叠就更新右端点
三次反转:整体反转 + 前 k 反转 + 后 n-k 反转,注意 k %= n
左右乘积数组 L[i]*R[i],空间可优化到 O(1)
原地哈希:把 <=0 的数改成 n+1,再对 [1,n] 用负号打标记,第一个正数位置 i+1 即答案
2026-06-18 Thursday
前缀和数组 s[i+1]=s[i]+nums[i],查询 O(1):s[right+1]-s[left]
前缀和 + 哈希表,统计 s[j]-k 出现次数
滑动窗口,r 扩张找可行解,l 收缩优化,注意 size() 无符号数陷阱
单调队列(双端队列),队头存当前窗口最大值
2026-06-17 Wednesday
排序+双指针,注意去重
双指针左右夹逼,lmax 和 rmax 取较小的一边累计
2026-06-16 Tuesday
双指针从两端向中间收敛,每次移动短板
快慢指针,慢指针左侧都是非零数
2026-06-15 Monday
哈希表一次遍历 O(n),注意 unordered_map 用法
对每个字符串排序作为 key,哈希表分组
哈希表存端点,只从连续序列起点开始计数 O(n)