NeetCode 250 面试题单
NeetCode 250 将 NeetCode 150 扩充为 250 道题,同样分为 18 个专题。每个专题前面多了更平易近人的基础热身题,后面则补上常考的进阶变形题;如果觉得 NeetCode 150 难度跳太快,这份题单的坡度会平顺许多。
NeetCode 150 的所有题目都包含在 NeetCode 250 之中,你在 Dokicode 任何题单做过的题目都会自动跨题单同步。
250 道题难度分 1161–286318 专题
进入书房
想有人陪你把这份题单做完吗?登录后进入书房,女主角会一次递给你一道题。
数组与 Hashing
| 题目 | 难度 / 评分 |
|---|---|
| 1929. 阵列串联 | Easy |
| 217. 存在重复元素 | Easy |
| 242. 有效的字母异位词 | Easy |
| 1. 两数之和 | 1161 |
| 14. 最长公共字首 | Easy |
| 49. 字母异位词分组 | Medium |
| 27. 移除元素 | 1263 |
| 169. 多数元素 | Easy |
| 705. 设计杂凑集合 | Easy |
| 706. 设计杂凑映射 | Easy |
| 912. 排序阵列 | Medium |
| 75. 颜色分类 | 1263 |
| 347. 前 K 个高频元素 | Medium |
| 271. 字串的编码与解码 LeetCode Premium(选做) | Medium |
| 304. 二维区域和检索 - 矩阵不可变 | 1484 |
| 238. 除自身以外阵列的乘积 | Medium |
| 36. 有效的数独 | Medium |
| 128. 最长连续序列 | Medium |
| 122. 买卖股票的最佳时机 II | Medium |
| 229. 多数元素 II | Medium |
| 560. 和为 K 的子阵列 | 1592 |
| 41. 缺失的第一个正数 | Hard |
Two Pointers
| 题目 | 难度 / 评分 |
|---|---|
| 344. 反转字串 | 1263 |
| 125. 验证回文串 | 1263 |
| 680. 验证回文串 II | 1400 |
| 1768. 交替合并字串 | Easy |
| 88. 合并两个有序阵列 | 1315 |
| 26. 删除有序阵列中的重复项 | 1263 |
| 167. 两数之和 II - 输入有序阵列 | 1263 |
| 15. 三数之和 | 1263 |
| 18. 四数之和 | 1263 |
| 189. 轮转阵列 | Medium |
| 11. 盛最多水的容器 | 1263 |
| 881. 救生艇 | 1530 |
| 42. 接雨水 | 1263 |
Sliding Window
| 题目 | 难度 / 评分 |
|---|---|
| 219. 存在重复元素 II | 1365 |
| 121. 买卖股票的最佳时机 | Easy |
| 3. 无重复字元的最长子串 | 1263 |
| 424. 替换后的最长重复字元 | 1787 |
| 567. 字串的排列 | 2006 |
| 209. 长度最小的子阵列 | 1263 |
| 658. 找到 K 个最接近的元素 | 1263 |
| 76. 最小覆盖子串 | 1592 |
| 239. 滑动视窗最大值 | 1851 |
Stack
| 题目 | 难度 / 评分 |
|---|---|
| 682. 棒球比赛 | 1228 |
| 20. 有效的括号 | 1242 |
| 225. 用伫列实现堆叠 | 1851 |
| 232. 用堆叠实现伫列 | 1851 |
| 155. 最小堆叠 | 1772 |
| 150. 逆波兰表示式求值 | 1408 |
| 22. 括号生成 | Medium |
| 735. 小行星碰撞 | 2057 |
| 739. 每日温度 | 1700 |
| 901. 股票价格跨度 | 1709 |
| 853. 车队 | 1600 |
| 71. 简化路径 | 1578 |
| 394. 字串解码 | 1408 |
| 895. 最大频率堆叠 | 2028 |
| 84. 柱状图中最大的矩形 | 1900 |
Binary Search
| 题目 | 难度 / 评分 |
|---|---|
| 704. 二分搜寻 | Easy |
| 35. 搜寻插入位置 | Easy |
| 374. 猜数字大小 | Easy |
| 69. x 的平方根 | Easy |
| 74. 搜寻二维矩阵 | Medium |
| 875. 爱吃香蕉的珂珂 | 1766 |
| 1011. 在 D 天内送达包裹的能力 | 1725 |
| 153. 寻找旋转排序阵列中的最小值 | Medium |
| 33. 搜寻旋转排序阵列 | Medium |
| 81. 搜寻旋转排序阵列 II | Medium |
| 981. 基于时间的键值储存 | Medium |
| 410. 分割阵列的最大值 | Hard |
| 4. 寻找两个正序阵列的中位数 | Hard |
| 1095. 山脉阵列中查询目标值 | 1827 |
Linked List
| 题目 | 难度 / 评分 |
|---|---|
| 206. 反转连结串列 | Easy |
| 21. 合并两个有序连结串列 | Easy |
| 141. 环形连结串列 | Easy |
| 143. 重排连结串列 | Medium |
| 19. 删除连结串列的倒数第 N 个结点 | Medium |
| 138. 随机连结串列的复制 | Medium |
| 2. 两数相加 | Medium |
| 287. 寻找重复数 | Medium |
| 92. 反转连结串列 II | Medium |
| 622. 设计回圈伫列 | 1851 |
| 146. LRU 快取 | 2863 |
| 460. LFU 快取 | 2863 |
| 23. 合并 K 个升序连结串列 | 1818 |
| 25. K 个一组翻转连结串列 | Hard |
树
| 题目 | 难度 / 评分 |
|---|---|
| 94. 二元树的中序遍历 | Easy |
| 144. 二元树的前序遍历 | Easy |
| 145. 二元树的后序遍历 | Easy |
| 226. 翻转二元树 | Easy |
| 104. 二元树的最大深度 | Easy |
| 543. 二元树的直径 | Easy |
| 110. 平衡二元树 | Easy |
| 100. 相同的树 | Easy |
| 572. 另一棵树的子树 | Easy |
| 235. 二元搜寻树的最近公共祖先 | Medium |
| 701. 二元搜寻树中的插入操作 | Medium |
| 450. 删除二元搜寻树中的节点 | Medium |
| 102. 二元树的层序遍历 | Medium |
| 199. 二元树的右检视 | Medium |
| 427. 建立四叉树 | Medium |
| 1448. 统计二元树中好节点的数目 | 1360 |
| 98. 验证二元搜寻树 | Medium |
| 230. 二元搜寻树中第 K 小的元素 | Medium |
| 105. 从前序与中序遍历序列构造二元树 | Medium |
| 337. 打家劫舍 III | Medium |
| 1325. 删除给定值的叶子节点 | 1407 |
| 124. 二元树中的最大路径和 | Hard |
| 297. 二元树的序列化与反序列化 | Hard |
Heap
| 题目 | 难度 / 评分 |
|---|---|
| 703. 资料流中的第 K 大元素 | 1419 |
| 1046. 最后一块石头的重量 | 1173 |
| 973. 最接近原点的 K 个点 | Medium |
| 215. 阵列中的第K个最大元素 | Medium |
| 621. 任务排程器 | 1905 |
| 355. 设计推特 | 1822 |
| 1834. 单执行绪 CPU | 1798 |
| 767. 重构字串 | 1681 |
| 1405. 最长快乐字串 | 1821 |
| 1094. 拼车 | 1441 |
| 295. 资料流的中位数 | 2159 |
| 502. IPO | 1822 |
Backtracking
| 题目 | 难度 / 评分 |
|---|---|
| 1863. 找出所有子集的异或总和再求和 | 1372 |
| 78. 子集 | Medium |
| 39. 组合总和 | Medium |
| 40. 组合总和 II | Medium |
| 77. 组合 | Medium |
| 46. 全排列 | Medium |
| 90. 子集 II | Medium |
| 47. 全排列 II | Medium |
| 79. 单词搜寻 | Medium |
| 131. 分割回文串 | Medium |
| 17. 电话号码的字母组合 | Medium |
| 473. 火柴拼正方形 | Medium |
| 698. 划分为k个相等的子集 | Medium |
| 51. N 皇后 | Hard |
| 52. N 皇后 II | Hard |
| 140. 单词拆分 II | 1725 |
Trie
| 题目 | 难度 / 评分 |
|---|---|
| 208. 实现 Trie (字首树) | 1180 |
| 211. 新增与搜寻单词 - 资料结构设计 | 1725 |
| 2707. 字串中的额外字元 | 1736 |
| 212. 单词搜寻 II | 1725 |
图
| 题目 | 难度 / 评分 |
|---|---|
| 463. 岛屿的周长 | Easy |
| 953. 验证外星语词典 | Easy |
| 997. 找到小镇的法官 | Easy |
| 200. 岛屿数量 | Medium |
| 695. 岛屿的最大面积 | Medium |
| 133. 复制图 | Medium |
| 286. 墙与门 LeetCode Premium(选做) | Medium |
| 994. 腐烂的橘子 | Medium |
| 417. 太平洋大西洋水流问题 | 1900 |
| 130. 被围绕的区域 | Medium |
| 752. 开启转盘锁 | 1878 |
| 207. 课程表 | Medium |
| 210. 课程表 II | Medium |
| 261. 以图判树 LeetCode Premium(选做) | Medium |
| 1462. 课程表 IV | Medium |
| 323. 无向图中连通分量的数目 LeetCode Premium(选做) | Medium |
| 684. 冗余连线 | Medium |
| 721. 账户合并 | Medium |
| 399. 除法求值 | 1725 |
| 310. 最小高度树 | Medium |
| 127. 单词接龙 | Hard |
进阶图论
| 题目 | 难度 / 评分 |
|---|---|
| 1631. 最小体力消耗路径 | 1948 |
| 743. 网路延迟时间 | Medium |
| 332. 重新安排行程 | Hard |
| 1584. 连线所有点的最小费用 | 1858 |
| 778. 水位上升的泳池中游泳 | 2097 |
| 269. 火星词典 LeetCode Premium(选做) | Hard |
| 787. K 站中转内最便宜的航班 | Medium |
| 1489. 找到最小生成树里的关键边和伪关键边 | 2572 |
| 2392. 给定条件下构造矩阵 | 1961 |
| 2709. 最大公约数遍历 | 2172 |
一维 DP
| 题目 | 难度 / 评分 |
|---|---|
| 70. 爬楼梯 | Easy |
| 746. 使用最小花费爬楼梯 | 1500 |
| 1137. 第 N 个泰波那契数 | Easy |
| 198. 打家劫舍 | Medium |
| 213. 打家劫舍 II | Medium |
| 5. 最长回文子串 | Medium |
| 647. 回文子串 | Medium |
| 91. 解码方法 | Medium |
| 322. 零钱兑换 | Medium |
| 152. 乘积最大子阵列 | Medium |
| 139. 单词拆分 | Medium |
| 300. 最长递增子序列 | Medium |
| 416. 分割等和子集 | Medium |
| 377. 组合总和 Ⅳ | 1600 |
| 279. 完全平方数 | Medium |
| 343. 整数拆分 | Medium |
| 1406. 石子游戏 III | 2027 |
二维 DP
| 题目 | 难度 / 评分 |
|---|---|
| 62. 不同路径 | Medium |
| 63. 不同路径 II | Medium |
| 64. 最小路径和 | Medium |
| 1143. 最长公共子序列 | Medium |
| 1049. 最后一块石头的重量 II | 2092 |
| 309. 买卖股票的最佳时机含冷冻期 | Medium |
| 518. 零钱兑换 II | Medium |
| 494. 目标和 | Medium |
| 97. 交错字串 | Medium |
| 877. 石子游戏 | 1590 |
| 1140. 石子游戏 II | 2035 |
| 329. 矩阵中的最长递增路径 | Hard |
| 115. 不同的子序列 | Hard |
| 72. 编辑距离 | Medium |
| 312. 戳气球 | Hard |
| 10. 正规表示式匹配 | Hard |
Greedy
| 题目 | 难度 / 评分 |
|---|---|
| 860. 柠檬水找零 | Easy |
| 53. 最大子阵列和 | Medium |
| 918. 环形子阵列的最大和 | 1777 |
| 978. 最长湍流子阵列 | 1393 |
| 55. 跳跃游戏 | Medium |
| 45. 跳跃游戏 II | 1700 |
| 1871. 跳跃游戏 VII | 1896 |
| 134. 加油站 | Medium |
| 846. 一手顺子 | Medium |
| 649. Dota2 参议院 | 1686 |
| 1899. 合并若干三元组以形成目标三元组 | 1636 |
| 763. 划分字母区间 | 1443 |
| 678. 有效的括号字串 | 1700 |
| 135. 分发糖果 | 1263 |
区间
| 题目 | 难度 / 评分 |
|---|---|
| 57. 插入区间 | Medium |
| 56. 合并区间 | Medium |
| 435. 无重叠区间 | 1700 |
| 252. 会议室 LeetCode Premium(选做) | Easy |
| 253. 会议室 II LeetCode Premium(选做) | Medium |
| 2402. 会议室 III | 2093 |
| 1851. 包含每个查询的最小区间 | 2286 |
数学与几何
| 题目 | 难度 / 评分 |
|---|---|
| 168. Excel 表列名称 | Easy |
| 1071. 字串的最大公因子 | 1398 |
| 2807. 在连结串列中插入最大公约数 | 1279 |
| 867. 转置矩阵 | Easy |
| 48. 旋转影像 | Medium |
| 54. 螺旋矩阵 | Medium |
| 73. 矩阵置零 | Medium |
| 202. 快乐数 | Easy |
| 66. 加一 | Easy |
| 13. 罗马数字转整数 | 1209 |
| 50. Pow(x, n) | Medium |
| 43. 字串相乘 | Medium |
| 2013. 检测正方形 | Medium |
Bit Manipulation
| 题目 | 难度 / 评分 |
|---|---|
| 136. 只出现一次的数字 | Easy |
| 191. 位 1 的个数 | Easy |
| 338. 位元位计数 | Easy |
| 67. 二进位求和 | Easy |
| 190. 颠倒二进位位 | Easy |
| 268. 丢失的数字 | Easy |
| 371. 两整数之和 | Medium |
| 7. 整数反转 | Medium |
| 201. 数字范围按位与 | Medium |
| 3133. 阵列最后一个元素的最小值 | 1935 |
适合备考时间充裕、想把 18 个算法专题练得更扎实的人;随时可在书房的“题单”抽屉与 NeetCode 150 自由切换。
难度分来自 zerotrac 的 LeetCode 竞赛评分;早期经典题没有竞赛评分,会显示 LeetCode 官方难度。
进入书房