LeetCode刷题目录

0.排序

215. 数组中的第K个最大元素(中等)

1.栈与队列

剑指 Offer 09. 用两个栈实现队列(简单)
剑指 Offer 30. 包含min函数的栈(简单)

2.链表

剑指 Offer 06. 从尾到头打印链表(简单):可以直接反转链表,更快一点
剑指 Offer 24. 反转链表(简单)
剑指 Offer 35. 复杂链表的复制(中等):和克隆图差不多

3.字符串

28. 实现 strStr()(简单)
剑指 Offer 05. 替换空格(简单)
5. 最长回文子串(中等)

4.二分

704. 二分查找(简单)
35. 搜索插入位置(简单)
34. 在排序数组中查找元素的第一个和最后一个位置(中等)
剑指 Offer 53 - I. 在排序数组中查找数字 I(简单)
Lintcode460 · 在排序数组中找最接近的K个数(中等)
剑指 Offer 04. 二维数组中的查找(中等)

5.双指针

1. 两数之和(简单)
125. 验证回文串(简单)
680. 验证回文字符串 Ⅱ(简单)
209. 长度最小的子数组(中等)
4. 寻找两个正序数组的中位数(困难)

6.二叉树遍历

前序遍历中序遍历要求掌握递归非递归写法,其中中序遍历非递归写法在BST题型中将会用到。
144. 二叉树的前序遍历(简单)
94. 二叉树的中序遍历(简单)
145. 二叉树的后序遍历(简单)
102. 二叉树的层序遍历(中等)
剑指 Offer 32 - III. 从上到下打印二叉树 III(中等)

7.广搜BFS

BFS主要用于解决三类问题:
(1)拓扑排序
(2)层序遍历搜索
(3)联通块问题

7.1拓扑排序题型

拓扑排序的题型又可以细分为:
(1)是否存在拓扑排序
(2)存在多种拓扑排序,求其中一种
(3)是否存在唯一拓扑排序
(4)求字典序的拓扑排序
Lintcode127 · 拓扑排序(中等)
207. 课程表(中等)
210. 课程表 II(中等)
剑指 Offer II 114. 外星文字典(困难)
剑指 Offer II 115. 重建序列(中等):拓扑排序是否唯一

7.2层序遍历搜索

一般用于求最短、最小的路径或者层序遍历。
Lintcode611 · 骑士的最短路线(中等)
133. 克隆图(中等)

127. 单词接龙(困难)

7.3连通块问题

该类题型既可以用深搜也可以广搜,但尽量用广搜。
200. 岛屿数量(中等)

8.分治法求解二叉树问题

99%的二叉树题型都可以用分治法解决,因此一下子想不到思路,就用分治法。

用分治法求解二叉树问题可以分为三类:
(1)二叉树上求值,求路径
(2)二叉树结构变化
(3)二叉查找树

8.1二叉树上求值,求路径

Lintcode596 · 最小子树(简单)

面试题 04.04. 检查平衡性(简单)
257. 二叉树的所有路径(简单)
112. 路径总和(简单)
剑指 Offer II 049. 从根节点到叶节点的路径数字之和(中等)

8.1.1最近公共祖先(Lowest Common Ancestor, LCA)

可以采用分治解法,要是想不到,也可以求根节点到A、B节点的路径,再挨个匹配。
236. 二叉树的最近公共祖先(中等):无父指针,LCA一定存在
Lintcode88 · 最近公共祖先(中等):有父指针,LCA一定存在
Lintcode474 · 最近公共祖先 II(中等):无父指针,LCA一定存在
Lintcode578 · 最近公共祖先 III(中等):无父指针,LCA可能不存在

8.2二叉树结构变化

Lintcode453 · 将二叉树拆成链表(简单)

8.3二叉查找树BST

108. 将有序数组转换为二叉搜索树(简单)
Lintcode1524 · 在二叉搜索树中查找(简单):BST查找节点
701. 二叉搜索树中的插入操作(中等):BST插入节点
450. 删除二叉搜索树中的节点(中等):BST删除节点
669. 修剪二叉搜索树(中等)
Lintcode902 · BST中第K小的元素(中等)
剑指 Offer II 055. 二叉搜索树迭代器(中等)
Lintcode900 · 二叉搜索树中最接近的值(中等)
Lintdoe901 · 二叉搜索树中最接近的值 II(困难):求最接近target的k个值,可联想到二分查找

9.dfs

9.1 组合问题

17. 电话号码的字母组合(中等)
90 · k数和(二)(中等)
剑指 Offer II 080. 含有 k 个元素的组合(中等)
剑指 Offer II 081. 允许重复选择元素的组合(中等)
剑指 Offer II 082. 含有重复元素集合的组合(中等)
135 · 数字组合(中等)

9.2 排列问题

剑指 Offer II 083. 没有重复元素集合的全排列(中等)
剑指 Offer II 084. 含有重复元素集合的全排列 (中等)
剑指 Offer 38. 字符串的排列(中等)

10.哈希表

Lintcode 685 · 数据流中第一个唯一的数字(简单)
Lintcode 960 · 数据流中第一个独特的数 II(中等)
146. LRU 缓存(中等)

11.堆

面试题40. 最小的k个数(简单)
剑指 Offer II 059. 数据流的第 K 大数值(简单)
263. 丑数(简单,虽然不用堆,但为了丑数II还是放进来了)
264. 丑数 II(中等)
1201. 丑数 III(中等)
215. 数组中的第K个最大元素(中等)
347. 前 K 个高频元素(中等)
973. 最接近原点的 K 个点(中等)
23. 合并K个升序链表(困难)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值