前言 遗忘是人类的本能,经常自查是必不可少的。现在面试手撕已经是必备项目,手撕题目大部分来自于力扣 HOT100 以及对应方向的一些编码题。我对 HOT 100 的题目以及Java相关的一些编码题目进行了分类整理,并提供解题思路,用作复习。 以文档的形式而不是直接去力扣是因为文档的形式效率较高,看一遍很快,如果每次复习都去力扣敲一遍,太慢了。这里面的题目都是需要做到能够不卡壳的敲出来的(困难题除外),能背下来最好。 力扣中的题目我都给出了题号和链接,以便跳转直接练习。Java方向的题目我也会给出代码,在我另一篇博客中,也会附上链接,以便自查。 1.数组 1)双指针 2)二分查找 3)二维数组 4)数组基础操作 2.字符串 1)双指针 2)回文字符串 3)字符串基础操作 3.链表 1)反转链表 2)环 3)链表基础操作 4.二叉树 1)搜索树 2)树转链表 3)树的基础操作 5. 回溯 1)组合 2)排列 3)回溯基础操作 6.动态规划 1)单序列 2)双序列 3)矩阵路径 4)背包 5)DP基础操作 7. 贪心 1)区间 8. 其他 1)LRU 2)字典树 3)栈 9. 排序算法 1)冒泡排序 2)插入排序 3)选择排序 4)快速排序 5)归并排序 6)堆排序 7)拓扑排序 10.多线程 1)Sychronized关键字实现 2)Reentrentlock实现 3)线程池 11. 设计模式 1)单例模式 2)生产者-消费者模式 3)适配器模式 4)代理模式