Top 100
3. 无重复字符的最长子串¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
146. LRU缓存机制¶
基于LinkedHashMap实现:¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
|
基于Linked源码:¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
25. K 个一组翻转链表¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
206. 反转链表¶
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
215. 数组中的第K个最大元素¶
¶
官方堆结构¶
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
自写堆结构¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
快排求K大元素:先升序排序求倒数第K¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
15. 三数之和¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|
103. 二叉树的锯齿形层次遍历¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
121. 买卖股票的最佳时机¶
1 2 3 4 5 6 7 8 9 10 11 12 |
|
200. 岛屿数量¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
33. 搜索旋转排序数组¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
160. 相交链表¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
1. 两数之和¶
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
54. 螺旋矩阵¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
42. 接雨水¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
5. 最长回文子串¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
236. 二叉树的最近公共祖先¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
53. 最大子序和¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
46. 全排列¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
31. 下一个排列¶
1 2 3 4 5 6 7 8 9 10 11 12 |
|
23. 合并K个排序链表¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
300. 最长上升子序列¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
199. 二叉树的右视图¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
143. 重排链表¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
|
102. 二叉树的层序遍历¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
20. 有效的括号¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
88. 合并两个有序数组¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
21. 合并两个有序链表¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
41. 缺失的第一个正数¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
141. 环形链表¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
415. 字符串相加¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
124. 二叉树中的最大路径和¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
92. 反转链表 II¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
221. 最大正方形¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
56. 合并区间¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
148. 排序链表¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
129. 求根到叶子节点数字之和¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
72. 编辑距离¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
69. x 的平方根¶
袖珍计算器¶
1 2 3 4 5 6 7 8 9 10 |
|
二分查找¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
牛顿迭代¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
101. 对称二叉树¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
队列实现¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
165. 比较版本号¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
补充题4. 手撕快速排序¶
普通版本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
加了随机数版本
105. 从前序与中序遍历序列¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
22. 括号生成¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
32. 最长有效括号¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
93. 复原IP地址¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
4. 寻找两个正序数组的中位¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
142. 环形链表 II¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
112. 路径总和¶
1 2 3 4 5 6 7 8 9 10 |
|
76. 最小覆盖子串¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
232. 用栈实现队列¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
39. 组合总和¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
98. 验证二叉搜索树¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
82. 删除排序链表中的重复元素¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
2. 两数相加¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
94. 二叉树的中序遍历¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
322. 零钱兑换¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
78. 子集¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
19. 删除链表的倒数第N个节¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
394. 字符串解码¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
209. 长度最小的子数组¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
113. 路径总和 II¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
122. 买卖股票的最佳时机 II¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
补充题1. 排序奇升偶降链表¶
-
按奇偶位置拆分链表,得1->3->5->7->NULL和8->6->4->2->NULL
-
反转偶链表,得1->3->5->7->NULL和2->4->6->8->NULL
-
合并两个有序链表,得1->2->3->4->5->6->7->8->NULL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
|
662. 二叉树最大宽度¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
70. 爬楼梯¶
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
155. 最小栈¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
1143. 最长公共子序列¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
239. 滑动窗口最大值¶
堆:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
队列:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
470. 用 Rand7() 实现 Rand10()¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
1 2 3 |
|
240. 搜索二维矩阵 II¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
补充题2. 圆环回原点问题¶
若设dp[i][j]
为从0点出发走i步到j点的方案数,则递推式为:
走n步到0的方案数=走n-1步到1的方案数+走n-1步到9的方案数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
543. 二叉树的直径¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
695. 岛屿的最大面积¶
递归:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
dfs:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
bfs:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
440. 字典序的第K小数字¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
48. 旋转图像¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
剑指 Offer 22. 链表中倒数第k个结点¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
139. 单词拆分¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
64. 最小路径和¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
补充题23. 检测循环依赖¶
拓扑排序算法过程:
- 选择图中一个入度为0的点,记录下来
- 在图中删除该点和所有以它为起点的边
- 重复1和2,直到图为空或没有入度为0的点。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
43. 字符串相乘¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
198. 打家劫舍¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
79. 单词搜索¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
剑指 Offer 26. 树的子结构¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
958. 二叉树的完全性检验¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
取巧方法:找第一个空结点
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
402. 移掉K位数字¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
152. 乘积最大子数组¶
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
104. 二叉树的最大深度¶
dfs:
1 2 3 4 5 6 7 |
|
bfs:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
62. 不同路径¶
数学推导:C(m - 1, m + n + 2)
1 2 3 |
|
dp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
dp空间优化:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
128. 最长连续序列¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
110. 平衡二叉树¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
8. 字符串转换整数 (atoi)¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
226. 翻转二叉树¶
1 2 3 4 5 6 7 8 9 10 11 12 |
|
24. 两两交换链表中的节点¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
297. 二叉树的序列化与反¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
1 2 3 4 5 6 7 8 9 |
|
518. 零钱兑换 II¶
剑指 Offer 09. 用两个栈实现队¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
704. 二分查找¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
11. 盛最多水的容器¶
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
739. 每日温度¶
单调递减栈 从左往右找 当前元素大于栈顶元素的弹出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|