Skip to content

Latest commit

 

History

History
355 lines (253 loc) · 45.1 KB

top_150_list.md

File metadata and controls

355 lines (253 loc) · 45.1 KB
title headerDepth
面试必刷 150 题
0

数组 / 字符串

题号 标题 题解 标签 难度 力扣
88 合并两个有序数组 [✓] 数组 双指针 排序 🟢 🀄️ 🔗
27 移除元素 [✓] 数组 双指针 🟢 🀄️ 🔗
26 删除有序数组中的重复项 [✓] 数组 双指针 🟢 🀄️ 🔗
80 删除有序数组中的重复项 II [✓] 数组 双指针 🟠 🀄️ 🔗
169 多数元素 [✓] 数组 哈希表 分治 2+ 🟢 🀄️ 🔗
189 轮转数组 [✓] 数组 数学 双指针 🟠 🀄️ 🔗
121 买卖股票的最佳时机 [✓] 数组 动态规划 🟢 🀄️ 🔗
122 买卖股票的最佳时机 II [✓] 贪心 数组 动态规划 🟠 🀄️ 🔗
55 跳跃游戏 [✓] 贪心 数组 动态规划 🟠 🀄️ 🔗
45 跳跃游戏 II [✓] 贪心 数组 动态规划 🟠 🀄️ 🔗
274 H 指数 [✓] 数组 计数排序 排序 🟠 🀄️ 🔗
380 O(1) 时间插入、删除和获取随机元素 [✓] 设计 数组 哈希表 2+ 🟠 🀄️ 🔗
238 除自身以外数组的乘积 [✓] 数组 前缀和 🟠 🀄️ 🔗
134 加油站 [✓] 贪心 数组 🟠 🀄️ 🔗
135 分发糖果 [✓] 贪心 数组 🔴 🀄️ 🔗
42 接雨水 [✓] 数组 双指针 2+ 🔴 🀄️ 🔗
13 罗马数字转整数 [✓] 哈希表 数学 字符串 🟢 🀄️ 🔗
12 整数转罗马数字 [✓] 哈希表 数学 字符串 🟠 🀄️ 🔗
58 最后一个单词的长度 [✓] 字符串 🟢 🀄️ 🔗
14 最长公共前缀 [✓] 字典树 字符串 🟢 🀄️ 🔗
151 反转字符串中的单词 [✓] 双指针 字符串 🟠 🀄️ 🔗
6 Z 字形变换 [✓] 字符串 🟠 🀄️ 🔗
28 找出字符串中第一个匹配项的下标 [✓] 双指针 字符串 字符串匹配 🟢 🀄️ 🔗
68 文本左右对齐 [✓] 数组 字符串 模拟 🔴 🀄️ 🔗

双指针

题号 标题 题解 标签 难度 力扣
125 验证回文串 [✓] 双指针 字符串 🟢 🀄️ 🔗
392 判断子序列 [✓] 双指针 字符串 动态规划 🟢 🀄️ 🔗
167 两数之和 II - 输入有序数组 [✓] 数组 双指针 二分查找 🟠 🀄️ 🔗
11 盛最多水的容器 [✓] 贪心 数组 双指针 🟠 🀄️ 🔗
15 三数之和 [✓] 数组 双指针 排序 🟠 🀄️ 🔗

滑动窗口

题号 标题 题解 标签 难度 力扣
209 长度最小的子数组 [✓] 数组 二分查找 前缀和 1+ 🟠 🀄️ 🔗
3 无重复字符的最长子串 [✓] 哈希表 字符串 滑动窗口 🟠 🀄️ 🔗
30 串联所有单词的子串 [✓] 哈希表 字符串 滑动窗口 🔴 🀄️ 🔗
76 最小覆盖子串 [✓] 哈希表 字符串 滑动窗口 🔴 🀄️ 🔗

矩阵

题号 标题 题解 标签 难度 力扣
36 有效的数独 [✓] 数组 哈希表 矩阵 🟠 🀄️ 🔗
54 螺旋矩阵 [✓] 数组 矩阵 模拟 🟠 🀄️ 🔗
48 旋转图像 [✓] 数组 数学 矩阵 🟠 🀄️ 🔗
73 矩阵置零 [✓] 数组 哈希表 矩阵 🟠 🀄️ 🔗
289 生命游戏 [✓] 数组 矩阵 模拟 🟠 🀄️ 🔗

哈希表

题号 标题 题解 标签 难度 力扣
383 赎金信 [✓] 哈希表 字符串 计数 🟢 🀄️ 🔗
205 同构字符串 [✓] 哈希表 字符串 🟢 🀄️ 🔗
290 单词规律 [✓] 哈希表 字符串 🟢 🀄️ 🔗
242 有效的字母异位词 [✓] 哈希表 字符串 排序 🟢 🀄️ 🔗
49 字母异位词分组 [✓] 数组 哈希表 字符串 1+ 🟠 🀄️ 🔗
1 两数之和 [✓] 数组 哈希表 🟢 🀄️ 🔗
202 快乐数 [✓] 哈希表 数学 双指针 🟢 🀄️ 🔗
219 存在重复元素 II [✓] 数组 哈希表 滑动窗口 🟢 🀄️ 🔗
128 最长连续序列 [✓] 并查集 数组 哈希表 🟠 🀄️ 🔗

间隔

题号 标题 题解 标签 难度 力扣
228 汇总区间 [✓] 数组 🟢 🀄️ 🔗
56 合并区间 [✓] 数组 排序 🟠 🀄️ 🔗
57 插入区间 [✓] 数组 🟠 🀄️ 🔗
452 用最少数量的箭引爆气球 [✓] 贪心 数组 排序 🟠 🀄️ 🔗

题号 标题 题解 标签 难度 力扣
20 有效的括号 [✓] 字符串 🟢 🀄️ 🔗
71 简化路径 [✓] 字符串 🟠 🀄️ 🔗
155 最小栈 [✓] 设计 🟠 🀄️ 🔗
150 逆波兰表达式求值 [✓] 数组 数学 🟠 🀄️ 🔗
224 基本计算器 [✓] 递归 数学 1+ 🔴 🀄️ 🔗

链表

题号 标题 题解 标签 难度 力扣
141 环形链表 [✓] 哈希表 链表 双指针 🟢 🀄️ 🔗
2 两数相加 [✓] 递归 链表 数学 🟠 🀄️ 🔗
21 合并两个有序链表 [✓] 递归 链表 🟢 🀄️ 🔗
138 随机链表的复制 [✓] 哈希表 链表 🟠 🀄️ 🔗
92 反转链表 II [✓] 链表 🟠 🀄️ 🔗
25 K 个一组翻转链表 [✓] 递归 链表 🔴 🀄️ 🔗
19 删除链表的倒数第 N 个结点 [✓] 链表 双指针 🟠 🀄️ 🔗
82 删除排序链表中的重复元素 II [✓] 链表 双指针 🟠 🀄️ 🔗
61 旋转链表 [✓] 链表 双指针 🟠 🀄️ 🔗
86 分隔链表 [✓] 链表 双指针 🟠 🀄️ 🔗
146 LRU 缓存 [✓] 设计 哈希表 链表 1+ 🟠 🀄️ 🔗

  • 二叉树
题号 标题 题解 标签 难度 力扣
104 二叉树的最大深度 [✓] 深度优先搜索 广度优先搜索 1+ 🟢 🀄️ 🔗
100 相同的树 [✓] 深度优先搜索 广度优先搜索 1+ 🟢 🀄️ 🔗
226 翻转二叉树 [✓] 深度优先搜索 广度优先搜索 1+ 🟢 🀄️ 🔗
101 对称二叉树 [✓] 深度优先搜索 广度优先搜索 1+ 🟢 🀄️ 🔗
105 从前序与中序遍历序列构造二叉树 [✓] 数组 哈希表 2+ 🟠 🀄️ 🔗
106 从中序与后序遍历序列构造二叉树 [✓] 数组 哈希表 2+ 🟠 🀄️ 🔗
117 填充每个节点的下一个右侧节点指针 II [✓] 深度优先搜索 广度优先搜索 2+ 🟠 🀄️ 🔗
114 二叉树展开为链表 [✓] 深度优先搜索 2+ 🟠 🀄️ 🔗
112 路径总和 [✓] 深度优先搜索 广度优先搜索 1+ 🟢 🀄️ 🔗
129 求根节点到叶节点数字之和 [✓] 深度优先搜索 二叉树 🟠 🀄️ 🔗
124 二叉树中的最大路径和 [✓] 深度优先搜索 动态规划 1+ 🔴 🀄️ 🔗
173 二叉搜索树迭代器 [✓] 设计 3+ 🟠 🀄️ 🔗
222 完全二叉树的节点个数 [✓] 位运算 二分查找 1+ 🟢 🀄️ 🔗
236 二叉树的最近公共祖先 [✓] 深度优先搜索 二叉树 🟠 🀄️ 🔗
  • 二叉树的广度优先搜索
题号 标题 题解 标签 难度 力扣
199 二叉树的右视图 [✓] 深度优先搜索 广度优先搜索 1+ 🟠 🀄️ 🔗
637 二叉树的层平均值 [✓] 深度优先搜索 广度优先搜索 1+ 🟢 🀄️ 🔗
102 二叉树的层序遍历 [✓] 广度优先搜索 二叉树 🟠 🀄️ 🔗
103 二叉树的锯齿形层序遍历 [✓] 广度优先搜索 二叉树 🟠 🀄️ 🔗
  • 二叉搜索树
题号 标题 题解 标签 难度 力扣
530 二叉搜索树的最小绝对差 [✓] 深度优先搜索 广度优先搜索 2+ 🟢 🀄️ 🔗
230 二叉搜索树中第 K 小的元素 [✓] 深度优先搜索 二叉搜索树 1+ 🟠 🀄️ 🔗
98 验证二叉搜索树 [✓] 深度优先搜索 二叉搜索树 1+ 🟠 🀄️ 🔗
  • 前缀树
题号 标题 题解 标签 难度 力扣
208 实现 Trie (前缀树) [✓] 设计 字典树 哈希表 1+ 🟠 🀄️ 🔗
211 添加与搜索单词 - 数据结构设计 [✓] 深度优先搜索 设计 字典树 1+ 🟠 🀄️ 🔗
212 单词搜索 II [✓] 字典树 数组 字符串 2+ 🔴 🀄️ 🔗

  • 图的深度优先搜索
题号 标题 题解 标签 难度 力扣
200 岛屿数量 [✓] 深度优先搜索 广度优先搜索 并查集 2+ 🟠 🀄️ 🔗
130 被围绕的区域 [✓] 深度优先搜索 广度优先搜索 并查集 2+ 🟠 🀄️ 🔗
133 克隆图 [✓] 深度优先搜索 广度优先搜索 1+ 🟠 🀄️ 🔗
399 除法求值 [✓] 深度优先搜索 广度优先搜索 并查集 4+ 🟠 🀄️ 🔗
207 课程表 [✓] 深度优先搜索 广度优先搜索 1+ 🟠 🀄️ 🔗
210 课程表 II [✓] 深度优先搜索 广度优先搜索 1+ 🟠 🀄️ 🔗
  • 图的广度优先搜索
题号 标题 题解 标签 难度 力扣
945 使数组唯一的最小增量 [✓] 贪心 数组 计数 1+ 🟠 🀄️ 🔗
433 最小基因变化 [✓] 广度优先搜索 哈希表 字符串 🟠 🀄️ 🔗
127 单词接龙 [✓] 广度优先搜索 哈希表 字符串 🔴 🀄️ 🔗

回溯

题号 标题 题解 标签 难度 力扣
17 电话号码的字母组合 [✓] 哈希表 字符串 回溯 🟠 🀄️ 🔗
77 组合 [✓] 回溯 🟠 🀄️ 🔗
46 全排列 [✓] 数组 回溯 🟠 🀄️ 🔗
39 组合总和 [✓] 数组 回溯 🟠 🀄️ 🔗
52 N 皇后 II [✓] 回溯 🔴 🀄️ 🔗
22 括号生成 [✓] 字符串 动态规划 回溯 🟠 🀄️ 🔗
79 单词搜索 [✓] 数组 字符串 回溯 1+ 🟠 🀄️ 🔗

分治

题号 标题 题解 标签 难度 力扣
108 将有序数组转换为二叉搜索树 [✓] 二叉搜索树 数组 2+ 🟢 🀄️ 🔗
148 排序链表 [✓] 链表 双指针 分治 2+ 🟠 🀄️ 🔗
772 基本计算器 III 🔒 [✓] 递归 数学 1+ 🔴 🀄️ 🔗
23 合并 K 个升序链表 [✓] 链表 分治 堆(优先队列) 1+ 🔴 🀄️ 🔗

二分查找

题号 标题 题解 标签 难度 力扣
35 搜索插入位置 [✓] 数组 二分查找 🟢 🀄️ 🔗
74 搜索二维矩阵 [✓] 数组 二分查找 矩阵 🟠 🀄️ 🔗
162 寻找峰值 [✓] 数组 二分查找 🟠 🀄️ 🔗
33 搜索旋转排序数组 [✓] 数组 二分查找 🟠 🀄️ 🔗
34 在排序数组中查找元素的第一个和最后一个位置 [✓] 数组 二分查找 🟠 🀄️ 🔗
153 寻找旋转排序数组中的最小值 [✓] 数组 二分查找 🟠 🀄️ 🔗
4 寻找两个正序数组的中位数 [✓] 数组 二分查找 分治 🔴 🀄️ 🔗

题号 标题 题解 标签 难度 力扣
215 数组中的第K个最大元素 [✓] 数组 分治 快速选择 2+ 🟠 🀄️ 🔗
502 IPO [✓] 贪心 数组 排序 1+ 🔴 🀄️ 🔗
373 查找和最小的 K 对数字 [✓] 数组 堆(优先队列) 🟠 🀄️ 🔗
295 数据流的中位数 [✓] 设计 双指针 数据流 2+ 🔴 🀄️ 🔗

位运算

题号 标题 题解 标签 难度 力扣
67 二进制求和 [✓] 位运算 数学 字符串 1+ 🟢 🀄️ 🔗
190 颠倒二进制位 [✓] 位运算 分治 🟢 🀄️ 🔗
191 位1的个数 [✓] 位运算 分治 🟢 🀄️ 🔗
136 只出现一次的数字 [✓] 位运算 数组 🟢 🀄️ 🔗
137 只出现一次的数字 II [✓] 位运算 数组 🟠 🀄️ 🔗
201 数字范围按位与 [✓] 位运算 🟠 🀄️ 🔗

数学

题号 标题 题解 标签 难度 力扣
9 回文数 [✓] 数学 🟢 🀄️ 🔗
66 加一 [✓] 数组 数学 🟢 🀄️ 🔗
172 阶乘后的零 [✓] 数学 🟠 🀄️ 🔗
69 x 的平方根 [✓] 数学 二分查找 🟢 🀄️ 🔗
50 Pow(x, n) [✓] 递归 数学 🟠 🀄️ 🔗
149 直线上最多的点数 [✓] 几何 数组 哈希表 1+ 🔴 🀄️ 🔗

动态规划

  • Kadane 算法
题号 标题 题解 标签 难度 力扣
53 最大子数组和 [✓] 数组 分治 动态规划 🟠 🀄️ 🔗
954 二倍数对数组 [✓] 贪心 数组 哈希表 1+ 🟠 🀄️ 🔗
  • 一维
题号 标题 题解 标签 难度 力扣
70 爬楼梯 [✓] 记忆化搜索 数学 动态规划 🟢 🀄️ 🔗
198 打家劫舍 [✓] 数组 动态规划 🟠 🀄️ 🔗
139 单词拆分 [✓] 字典树 记忆化搜索 数组 3+ 🟠 🀄️ 🔗
322 零钱兑换 [✓] 广度优先搜索 数组 动态规划 🟠 🀄️ 🔗
300 最长递增子序列 [✓] 数组 二分查找 动态规划 🟠 🀄️ 🔗
  • 多维
题号 标题 题解 标签 难度 力扣
120 三角形最小路径和 [✓] 数组 动态规划 🟠 🀄️ 🔗
64 最小路径和 [✓] 数组 动态规划 矩阵 🟠 🀄️ 🔗
63 不同路径 II [✓] 数组 动态规划 矩阵 🟠 🀄️ 🔗
5 最长回文子串 [✓] 双指针 字符串 动态规划 🟠 🀄️ 🔗
97 交错字符串 [✓] 字符串 动态规划 🟠 🀄️ 🔗
72 编辑距离 [✓] 字符串 动态规划 🟠 🀄️ 🔗
123 买卖股票的最佳时机 III [✓] 数组 动态规划 🔴 🀄️ 🔗
188 买卖股票的最佳时机 IV [✓] 数组 动态规划 🔴 🀄️ 🔗
221 最大正方形 [✓] 数组 动态规划 矩阵 🟠 🀄️ 🔗

::: info

数据来源: LeetCode Top Interview 150

:::