- 简历模板
- 一线互联网公司技术面试的流程以及注意事项
- 究竟什么是时间复杂度,怎么求时间复杂度,看这一篇就够了
- 一文带你彻底理解程序为什么会超时
- 一场面试,带你彻底掌握递归算法的时间复杂度
- 算法分析中的空间复杂度,你真的会了么?
- 二分法其实很简单,为什么老是写不对!!
- 程序员算法面试中,必须掌握的数组理论知识
- 这五道数组相关的面试题,你一定要会!
- 关于哈希表,你该了解这些!
- 这六道哈希表相关的面试题,你一定要会!
- 精选链表相关的面试题
- 精选字符串相关的面试题
- 精选栈与队列相关的面试题
- 精选二叉树相关的面试题
- 精选递归与回溯面试题
(持续更新中....)
刷题顺序:建议先从同一类型里题目开始刷起,同一类型里再从简单到中等到困难刷起,题型顺序建议:数组-> 链表-> 哈希表->字符串->栈与队列->树。
这里我总结了各个类型的经典题目,初学者可以按照如下顺序来刷题,算法老手可以按照这个list查缺补漏!
-
数组经典题目
-
链表经典题目
-
哈希表经典题目
-
字符串经典题目
- 0344.反转字符串
- 0541.反转字符串II
- 剑指Offer05.替换空格
- 0151.翻转字符串里的单词
- 延伸左旋转字符串(剑指offer上的题目)
- 0028.实现strStr()
- 0459.重复的子字符串
-
栈与队列经典题目
-
二叉树经典题目
(待补充.....)
题目 | 类型 | 难度 | 解题方法 |
---|---|---|---|
0001.两数之和 | 数组 | 简单 | 暴力 哈希 |
0015.三数之和 | 数组 | 中等 | 双指针 哈希 |
0018.四数之和 | 数组 | 中等 | 双指针 |
0020.有效的括号 | 栈 | 简单 | 栈 |
0021.合并两个有序链表 | 链表 | 简单 | 模拟 |
0026.删除排序数组中的重复项 | 数组 | 简单 | 暴力 快慢指针 |
0027.移除元素 | 数组 | 简单 | 暴力 快慢指针/双指针 |
0028.实现strStr() | 字符串 | 简单 | KMP |
0035.搜索插入位置 | 数组 | 简单 | 暴力 二分 |
0053.最大子序和 | 数组 | 简单 | 暴力 贪心 动态规划 分治 |
0059.螺旋矩阵II | 数组 | 中等 | 模拟 |
0083.删除排序链表中的重复元素 | 链表 | 简单 | 模拟 |
0094.二叉树的中序遍历 | 树 | 中等 | 递归 迭代/栈 |
0098.验证二叉搜索树 | 树 | 中等 | 递归 |
0100.相同的树 | 树 | 简单 | 递归 |
0101.对称二叉树 | 树 | 简单 | 递归 迭代/队列/栈 |
0104.二叉树的最大深度 | 树 | 简单 | 递归 迭代/队列/BFS |
0110.平衡二叉树 | 树 | 简单 | 递归 |
0111.二叉树的最小深度 | 树 | 简单 | 递归 队列/BFS |
0142.环形链表II | 链表 | 中等 | 快慢指针/双指针 |
0144.二叉树的前序遍历 | 树 | 中等 | 递归 迭代/栈 |
0145.二叉树的后序遍历 | 树 | 困难 | 递归 迭代/栈 |
0151.翻转字符串里的单词 | 字符串 | 中等 | 模拟/双指针 |
0155.最小栈 | 栈 | 简单 | 栈 |
0202.快乐数 | 哈希表 | 简单 | 哈希 |
0203.移除链表元素 | 链表 | 简单 | 模拟 虚拟头结点 |
0205.同构字符串 | 哈希表 | 简单 | 哈希 |
0206.翻转链表 | 链表 | 简单 | 模拟 递归 |
0209.长度最小的子数组 | 数组 | 中等 | 暴力 滑动窗口 |
0219.存在重复元素II | 哈希表 | 简单 | 哈希 |
0225.用队列实现栈 | 队列 | 简单 | 队列 |
0232.用栈实现队列 | 栈 | 简单 | 栈 |
0237.删除链表中的节点 | 链表 | 简单 | 原链表移除 添加虚拟节点 递归 |
0239.滑动窗口最大值 | 滑动窗口/队列 | 困难 | 单调队列 |
0242.有效的字母异位词 | 哈希表 | 简单 | 哈希 |
0344.反转字符串 | 字符串 | 简单 | 双指针 |
0347.前K个高频元素 | 哈希/堆/优先级队列 | 中等 | 哈希/优先级队列 |
0349.两个数组的交集 | 哈希表 | 简单 | 哈希 |
0350.两个数组的交集II | 哈希表 | 简单 | 哈希 |
0383.赎金信 | 数组 | 简单 | 暴力 字典计数 哈希 |
0450.删除二叉搜索树中的节点 | 树 | 中等 | 递归 |
0434.字符串中的单词数 | 字符串 | 简单 | 模拟 |
0454.四数相加II | 哈希表 | 中等 | 哈希 |
0459.重复的子字符串 | 字符创 | 简单 | KMP |
0541.反转字符串II | 字符串 | 简单 | 模拟 |
0575.分糖果 | 哈希表 | 简单 | 哈希 |
0617.合并二叉树 | 树 | 简单 | 递归 迭代 |
0654.最大二叉树 | 树 | 中等 | 递归 |
0700.二叉搜索树中的搜索 | 树 | 简单 | 递归 迭代 |
0701.二叉搜索树中的插入操作 | 树 | 简单 | 递归 迭代 |
0705.设计哈希集合 | 哈希表 | 简单 | 模拟 |
0707.设计链表 | 链表 | 中等 | 模拟 |
1047.删除字符串中的所有相邻重复项 | 栈 | 简单 | 栈 |
剑指Offer05.替换空格 | 字符串 | 简单 | 双指针 |
持续更新中....
大家好,我是程序员Carl,ACM区域赛铜牌获得者,哈工大计算机硕士毕业,先后在腾讯和百度从事后端技术研发,CSDN博客专家。对算法和C++后端技术有一定的见解,利用工作之余重新刷leetcode。
我的微信:
更多精彩文章持续更新,微信搜索:「代码随想录」第一时间围观,关注后回复: 「简历模板」「java」「C++」「python」「算法与数据结构」 等关键字就可以获得我多年整理出来的学习资料。