一、数组与字符串
1、两数之和(LeetCode 1) - 哈希表解法
(√)
2、盛最多水的容器(LeetCode 11) - 对撞双指针
(√)
3、三数之和(LeetCode 15) - 排序+三指针
一半(√)
4、接雨水(LeetCode 42) - 左右最大值双指针
跳过
5、轮转数组(LeetCode 189) - 三次反转法
跳过
6、无重复字符的最长子串(LeetCode 3) - 滑动窗口
(√)
7、最大子数组和(LeetCode 53) - Kadane算法
(√)
8、搜索插入位置(LeetCode 35) - 二分查找
(√)
9、搜索旋转排序数组(LeetCode 33) - 变形二分查找
跳过
二、链表专题
1、反转链表(LeetCode 206) - 迭代/递归
迭代(√)
递归(x)
2、反转链表II(LeetCode 92) - 部分反转
跳过
3、合并两个有序链表(LeetCode 21) - 归并思想
(√)
4、删除排序链表中的重复元素(LeetCode 83) - 保留一个
(√)
5、删除排序链表中的重复元素II(LeetCode 82) - 全删除
(√)
6、环形链表(LeetCode 141) - 快慢指针判环
(√)
7、环形链表II(LeetCode 142) - 找环入口
(√)
8、相交链表(LeetCode 160) - 双指针技巧
(√)
9、删除链表的倒数第N个结点(LeetCode 19) - 快慢指针
(√)
10、K个一组翻转链表(LeetCode 25) - 分组反转
跳过
三、二叉树与树
1、 二叉树的中序遍历(LeetCode 94) - 递归/迭代
递归(√)
迭代(x)
2、二叉树的最大深度(LeetCode 104) - DFS/BFS
DFS(√)
BFS(X)
3、二叉树的层序遍历(LeetCode 102) - BFS队列
(√)
4、路径总和III(LeetCode 437) - 前缀和+DFS
(√)
5、二叉树的最近公共祖先(LeetCode 236) - 递归查找
(x)
四、栈与队列
1、每日温度(LeetCode 739) - 单调栈
(√)
2、最小栈(LeetCode 155) - 辅助栈设计
跳过
3、用栈实现队列(LeetCode 232) - 双栈法
(√)
4、有效的括号(LeetCode 20) - 栈
(√)
五、动态规划(7题)
1、爬楼梯(LeetCode 70) - 斐波那契
(√)
2、打家劫舍(LeetCode 198) - 一维DP
(√)
3、最长递增子序列(LeetCode 300) - LIS问题
(√)
4、最长回文子串(LeetCode 5) - 已归入数组类
(x)
5、零钱兑换(LeetCode 322) - 完全背包
(√)
6、买卖股票的最佳时机(LeetCode 121) - 一次交易
(√)
六、回溯与搜索
1、全排列(LeetCode 46) - 回溯模板
(√)
2、子集(LeetCode 78) - 回溯/位运算
跳过
3、岛屿数量(LeetCode 200) - 网格DFS/BFS
跳过
七、排序算法
快速排序(排序算法常考) - 分治思想
归并排序(排序算法常考) - 分治+归并
八、设计题
LRU缓存机制(LeetCode 146) - 哈希表+双向链表
跳过
单例模式 - 设计模式实现
多线程打印ABC - 线程协作
九、数学
将整数减少到零需要的最小操作数 - 位运算/贪心
跳过