数据结构篇
数组
- 88. 合并两个有序数组(简单)
- 240. 搜索二维矩阵 II(简单)
- 54. 螺旋矩阵(中等)
- 48. 旋转图像(中等)
链表
- 206. 反转链表(简单)
- 25. K 个一组翻转链表(困难)
- 141. 环形链表(简单)
- 21. 合并两个有序链表(简单)
- 160. 相交链表(简单)
- 92. 反转链表 II(中等)
- 23. 合并 K 个排序链表(困难)
- 142. 环形链表 II(中等)
- 143. 重排链表(中等)
- 剑指 Offer 22. 链表中倒数第 k 个节点(简单)
- 19. 删除链表的倒数第 N 个节点(中等)
- 82. 删除排序链表中的重复元素 II(中等)
- 2. 两数相加(中等)
- 148. 排序链表(中等)
- 234. 回文链表(简单)
- 83. 删除排序链表中的重复元素(简单)
- 138. 复制带随机指针的链表(中等)
- 24. 两两交换链表中的节点(中等)
二叉树
遍历
前序遍历
- 144. 二叉树的前序遍历(简单)
中序遍历
- 94. 二叉树的中序遍历(简单)
层序遍历
- 102. 二叉树的层序遍历(中等)
- 103. 二叉树的锯齿形层序遍历(中等)
视图
- 199. 二叉树的右视图(中等)
二叉搜索树
深度
- 104. 二叉树的最大深度(简单)
- 110. 平衡二叉树(简单)
求直径
- 543. 二叉树的直径(简单)
对称
- 101. 对称二叉树(简单)
翻转
- 226. 翻转二叉树(简单)
最近公共祖先
- 236. 二叉树的最近公共祖先(中等)
路径
- 112. 路径总和(简单)
- 124. 二叉树中的最大路径和(困难)
重建二叉树
栈与队列
- 20. 有效的括号(简单)
- 42. 接雨水(困难)
- 232. 用栈实现队列(简单)
- 155. 最小栈(简单)
- 227. 基本计算器 II(中等)
哈希表 HashMap
- 146. LRU 缓存机制(中等)
- 1. 两数之和(简单)
- 15. 三数之和(中等)
- 41. 缺失的第一个正数(困难)
- 169. 多数元素(简单)
- 128. 最长连续序列(中等)
字符串
- 415. 字符串相加(简单)
- 8. 字符串转换整数 (atoi)(中等)
- 151. 翻转字符串里的单词(中等)
- 43. 字符串相乘(中等)
- 468. 验证IP地址(中等)
- 14. 最长公共前缀(简单)
- 394. 字符串解码(中等)
堆
算法篇
二分查找
- 704. 二分查找(容易)
- 33. 搜索旋转排序数组(中等)
- 69. Sqrt(x)(简单)
- 4. 寻找两个正序数组的中位数(困难)
- 34. 在排序数组中查找元素的第一个和最后一个位置(中等)
- 153. 寻找旋转排序数组中的最小值(中等)
- 162. 寻找峰值(中等)
排序
深度优先搜索 DFS
- 200. 岛屿数量(中等)
- 129. 求根节点到叶节点数字之和(中等)
广度优先搜索 BFS
- 695. 岛屿的最大面积(中等)
- 958. 二叉树的完全性检验(中等)
位运算
- 136. 只出现一次的数字(简单)
算法思维
双指针
- 31. 下一个排列(中等)
- 165. 比较版本号(中等)
滑动窗口
- 3. 无重复字符的最长子串( 中等)
- 76. 最小覆盖子串(困难)
- 239. 滑动窗口最大值(困难)
回溯法
- 46. 全排列(中等)
- 93. 复原 IP 地址(中等)
- 113. 路径总和 II(中等)
- 78. 子集(中等)
- 22. 括号生成(中等)
- 39. 组合总和(中等)
动态规划
- 53. 最大子数组和(简单)
- 121. 买卖股票的最佳时机(简单)
- 122. 买卖股票的最佳时机 II(中等)
- 5. 最长回文子串(中等)
- 300. 最长递增子序列(中等)
- 70. 爬楼梯(简单)
- 72. 编辑距离(困难)
- 1143. 最长公共子序列(中等)
- 718. 最长重复子数组(中等)
- 322. 零钱兑换(中等)
- 32. 最长有效括号(困难)
- 64. 最小路径和(中等)
- 62. 不同路径(中等)
- 221. 最大正方形(中等)
- 198. 打家劫舍(中等)
- 213. 打家劫舍 II(中等)