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 | |
