题目来自于gaoshengnan/LeetCode, 事实上,很多题目我都已经做过了,再重新复习一遍吧
高频面试题来自于:https://blog.csdn.net/gongsai20141004277/article/details/105307217
以下列出面试高频出现,以及一些非常经典重要的算法题: 总计:100 已完成:?? 未完成:??
实战题目 - Array
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
11 | 中等 | 盛最多水的容器 | container with most water | ✅ |
26 | 简单 | 删除排序数组中重复项 | remove Duplicates from sorted array | ✅ |
66 | 简单 | 加一 | plus one | ✅ |
70 | 简单 | 爬楼梯 | climbing stairs | ✅ |
88 | 简单 | 合并两个有序数组 | merge sorted array | ✅ |
189 | 简单 | 旋转数组 | rotate array | ✅ |
283 | 简单 | 移动零 | move zeroes | ✅ |
数组、高频面试题
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
4 | 困难 | 4. 寻找两个正序数组的中位数 | 寻找两个正序数组的中位数 | ✅ |
31 | 中等 | 31. 下一个排列 | 31. 下一个排列 | ✅ |
34 | 中等 | 34. 在排序数组中查找元素的第一个和最后一个位置 | 34. 在排序数组中查找元素的第一个和最后一个位置 | ✅ |
54 | 中等 | 54. 螺旋矩阵 | 54. 螺旋矩阵 | ✅ |
56 | 中等 | 56. 合并区间 | 56. 合并区间 | ✅ |
238 | 中等 | 238. 除自身以外数组的乘积 | 238. 除自身以外数组的乘积 | ✅ |
1049 | 中等 | 1049. 最后一块石头的重量 II | 最后一块石头的重量 II | ✅ |
实战题目 - Linked List
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
21 | 简单 | 合并两个有序链表 | merge two sorted lists | ✅ |
24 | 中等 | 两两交换链表中的节点 | swap nodes in pairs | ✅ |
25 | 困难 | K 个一组翻转链表 | reverse node in k group | ✅ |
141 | 简单 | 环形链表 | linkedList cycle | ✅ |
142 | 中等 | 环形链表II | linked list cycle II | ✅ |
206 | 简单 | 反转链表 | reverse list | ✅ |
链表、高频题目
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
2 | 中等 | 2. 两数相加 | 2. 两数相加 | ✅ |
3 | 中等 | 3. 无重复字符的最长子串 | 3. 无重复字符的最长子串 | ✅ |
19 | 中等 | 19. 删除链表的倒数第N个节点 | 19. 删除链表的倒数第N个节点 | ✅ |
其他实战题目
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
1 | 简单 | 两数之和 | two sum | ✅ |
15 | 中等 | 三数之和 | three sum | ✅ |
20 | 简单 | 有效的括号 | valid parenthese | ✅ |
42 | 困难 | 接雨水 | trapping rain water | ✅ |
49 | 中等 | 字母异位词分组 | group anagrams | ✅ |
84 | 困难 | 柱状图中最大的矩形 | 84. Largest Rectangle in Histogram | ✅ |
155 | 简单 | 最小栈 | min stack | ✅ |
239 | 困难 | 滑动窗口最大值 | sliding window maximum | ✅ |
242 | 简单 | 有效的字母异位词 | valid anagram | ✅ |
641 | 中等 | 设计循环双端队列 | 641. Design Circular Deque | ✅ |
实战题目 - Binary Tree
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
22 | 中等 | 括号生成 | Generate Parentheses | ✅ |
94 | 中等 | 二叉树的中序遍历 | binary tree inorder traversal | ✅ |
98 | 中等 | 验证二叉搜索树 | validate binary search tree | ✅ |
104 | 简单 | 二叉树的最大深度 | maximum depth of binary tree | ✅ |
105 | 中等 | 从前序与中序遍历序列构造二叉树 | construct binary tree | ✅ |
111 | 简单 | 二叉树的最小深度 | minimum depth of binary tree | ✅ |
144 | 中等 | 二叉树的前序遍历 | binary tree preorder traversal | ✅ |
226 | 简单 | 翻转二叉树 | invert binary tree | ✅ |
230 | 中等 | 二叉搜索树中第K小的元素 | 二叉搜索树中第K小的元素 | ✅ |
236 | 中等 | 二叉树的最近公共祖先 | lowest common ancestor | ✅ |
297 | 困难 | 二叉树的序列化与反序列化 | 二叉树的序列化与反序列化 | ✅ |
429 | 简单 | N叉树的层序遍历 | n ary tree level order traversal | ✅ |
589 | 简单 | N叉树的前序遍历 | N叉树的前序遍历 | ✅ |
590 | 简单 | N叉树的后序遍历 | N叉树的后序遍历 | ✅ |
树、高频题目
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
124 | 困难 | 124. 二叉树中的最大路径和 | 124. 二叉树中的最大路径和 | ✅ |
199 | 中等 | 199. 二叉树的右视图 | 199. 二叉树的右视图 | ✅ |
543 | 简单 | 543. 二叉树的直径 | 543. 二叉树的直径 | ✅ |
572 | 简单 | 572. 另一个树的子树 | 另一个树的子树 | ✅ |
实战题目 - 分治
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
17 | 中等 | 电话号码的字母组合 | 17. Letter Combinations of a Phone Number | ✅ |
50 | 中等 | Pow(x, n) | pow x - n | ✅ |
78 | 中等 | 子集 | subsets | ✅ |
169 | 简单 | 求众数 | 169. Majority Element | ✅ |
分治算法、高频题目
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
23 | 困难 | 23. 合并K个排序链表 | 合并K个排序链表 | ✅ |
215 | 中等 | 215. 数组中的第K个最大元素 | 数组中的第K个最大元素 | ✅ |
240 | 中等 | 240. 搜索二维矩阵 II | 搜索二维矩阵 II | ✅ |
973 | 中等 | 973. 最接近原点的 K 个点 | 最接近原点的 K 个点 | ✅ |
实战题目 - 二分查找
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
33 | 中等 | 搜索旋转排序数组 | search in rotated sorted array | ✅ |
69 | 简单 | x 的平方根 | sqrtx | ✅ |
367 | 简单 | 有效的完全平方数 | valid perfect square | ✅ |
实战题目 - 并查集
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
130 | 中等 | 被围绕的区域 | 被围绕的区域 | ✅ |
200 | 中等 | 岛屿数量 | number of islands | ✅ |
547 | 中等 | 朋友圈 | 朋友圈 | ✅ |
实战题目 - 遍历和搜索
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
102 | 中等 | 二叉树的层次遍历 | binary tree level order traversal | ✅ |
126 | 困难 | 单词接龙 II | 单词接龙 II | ✅ |
127 | 中等 | 单词接龙 | 单词接龙 | ✅ |
433 | 中等 | 最小基因变化 | 最小基因变化 | ✅ |
515 | 中等 | 在每个树行中找最大值 | 在每个树行中找最大值 | ✅ |
529 | 中等 | 扫雷游戏 | 扫雷游戏 | ✅ |
实战题目 - 动态规划
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
32 | 中等 | 最长有效括号 | 最长有效括号 | ✅ |
45 | 困难 | 跳跃游戏 II | 跳跃游戏 II | ✅ |
55 | 困难 | 跳跃游戏 | 55. 跳跃游戏 | ✅ |
62 | 中等 | 不同路径 | unique paths | ✅ |
63 | 中等 | 不同路径 II | unique paths II | ✅ |
64 | 中等 | 最小路径和 | 最小路径和 | ✅ |
72 | 困难 | 编辑距离 | 编辑距离 | ✅ |
76 | 困难 | 最小覆盖子串 | 最小覆盖子串 | ✅ |
91 | 中等 | 解码方法 | 解码方法 | ✅ |
120 | 中等 | 三角形最小路径和 | 三角形最小路径和 | ✅ |
121 | 简单 | 买卖股票的最佳时机 | best time to buy and shell stock | ✅ |
122 | 简单 | 买卖股票的最佳时机 II | best time to buy and shell stock ii | ✅ |
123 | 困难 | 买卖股票的最佳时机 III | 买卖股票的最佳时机 III | ✅ |
152 | 中等 | 乘积最大子序列 | 乘积最大子序列 | ✅ |
188 | 困难 | 买卖股票的最佳时机 IV | 买卖股票的最佳时机 IV | ✅ |
198 | 简单 | 打家劫舍 | house robber | ✅ |
213 | 中等 | 打家劫舍 II | house robber ii | ✅ |
221 | 中等 | 最大正方形 | 最大正方形 | ✅ |
279 | 中等 | 完全平方数 | 完全平方数 | ✅ |
322 | 中等 | 零钱兑换 | 零钱兑换 | ✅ |
518 | 中等 | 零钱兑换 II | 零钱兑换 II | ✅ |
309 | 中等 | 最佳买卖股票时机含冷冻期 | 最佳买卖股票时机含冷冻期 | ✅ |
312 | 困难 | 戳气球 | 戳气球 | ✅ |
363 | 困难 | 矩形区域不超过 K 的最大数值和 | 矩形区域不超过 K 的最大数值和 | ✅ |
403 | 困难 | 青蛙过河 | 青蛙过河 | ✅ |
410 | 困难 | 分割数组的最大值 | 分割数组的最大值 | ✅ |
552 | 困难 | 学生出勤记录 II | 学生出勤记录 II | ✅ |
621 | 中等 | 任务调度器 | 任务调度器 | ✅ |
647 | 中等 | 回文子串 | 回文子串 | ✅ |
714 | 中等 | 买卖股票的最佳时机含手续费 | 买卖股票的最佳时机含手续费 | ✅ |
980 | 困难 | 不同路径 III | 不同路径 III | ✅ |
动态规划、高频题目
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
5 | 中等 | 5. 最长回文子串 | 5. 最长回文子串 | ✅ |
139 | 中等 | 139. 单词拆分 | 139. 单词拆分 | ✅ |
实战题目 - 剪枝
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
36 | 中等 | 有效的数独 | 有效的数独 | ✅ |
37 | 困难 | 解数独 | 解数独 | ✅ |
51 | 困难 | N皇后 | N皇后 | ✅ |
实战题目 - 贪心
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
455 | 简单 | 分发饼干 | 分发饼干 | ✅ |
860 | 简单 | 柠檬水找零 | 柠檬水找零 | ✅ |
874 | 简单 | 模拟行走机器人 | 模拟行走机器人 | ✅ |
实战题目 - trie 树
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
208 | 中等 | 实现 Trie (前缀树) | 实现 Trie (前缀树) | ✅ |
212 | 困难 | 单词搜索 II | 单词搜索 II | ✅ |
实战题目 - 位运算
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
52 | 困难 | N皇后 II | N皇后 II | ✅ |
190 | 简单 | 颠倒二进制位 | 颠倒二进制位 | ✅ |
191 | 简单 | 位1的个数 | 位1的个数 | ✅ |
231 | 简单 | 2的幂 | 2的幂 | ✅ |
338 | 中等 | 比特位计数 | 比特位计数 | ✅ |
实战题目 - LRU Catch
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
146 | 困难 | LRU缓存机制 | LRU缓存机制 | ✅ |
字符、高频
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
273 | 困难 | 273. 整数转换英文表示 | 整数转换英文表示 | ✅ |
415 | 简单 | 415. 字符串相加 | 字符串相加 | ✅ |
680 | 简单 | 680. 验证回文字符串 Ⅱ | 验证回文字符串 Ⅱ | ✅ |
819 | 简单 | 819. 最常见的单词 | 最常见的单词 | ✅ |
937 | 简单 | 937. 重新排列日志文件 | 重新排列日志文件 | ✅ |
堆与栈、高频题目
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
692 | 中等 | 692. 前K个高频单词 | 前K个高频单词 | ✅ |
1249 | 中等 | 1249. 移除无效的括号 | 移除无效的括号 | ✅ |
哈希表、高频题目
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
560 | 中等 | 560. 和为K的子数组 | 和为K的子数组 | ✅ |
953 | 简单 | 953. 验证外星语词典 | 验证外星语词典 | ✅ |
回溯算法、高频题目
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
46 | 中等 | 46. 全排列 | 全排列 | ✅ |
79 | 中等 | 79. 单词搜索 | 单词搜索 | ✅ |
图论、高频题目
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
301 | 困难 | 301. 删除无效的括号 | ||
994 | 中等 | 994. 腐烂的橘子 | 994. 腐烂的橘子 | ✅ |
1192 | 困难 | 1192. 查找集群内的「关键连接」 |
数学、高频题目
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
7 | 简单 | 7. 整数反转 | 整数反转 | ✅ |
8 | 中等 | 8. 字符串转换整数 (atoi) | 字符串转换整数 (atoi) | ✅ |
67 | 简单 | 67. 二进制求和 | 二进制求和 | ✅ |
202 | 简单 | 202. 快乐数 | 快乐数 | ✅ |
设计、高频题目
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
295 | 困难 | 295. 数据流的中位数 | 数据流的中位数 | ✅ |
380 | 中等 | 380. 常数时间插入、删除和获取随机元素 | 常数时间插入、删除和获取随机元素 | ✅ |
经典题目、高频题目
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
53 | 简单 | 53. 最大子序和 | 最大子序和 | ✅ |
125 | 简单 | 125. 验证回文串 | 验证回文串 | ✅ |
102 | 中等 | 102. 二叉树的层序遍历 | 二叉树的层序遍历 | ✅ |
138 | 中等 | 138. 复制带随机指针的链表 | 复制带随机指针的链表 | ✅ |
其他: 主要来自每天的每日一题
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
1028 | 困难 | 1028. 从先序遍历还原二叉树 | 1028. 从先序遍历还原二叉树 | ✅ |
10 | 困难 | 10. 正则表达式匹配 | 10. 正则表达式匹配 | ✅ |
44 | 困难 | 44. 通配符匹配 | 44. 通配符匹配 | ✅ |
面试16.18 | 中等 | 面试题 16.18. 模式匹配 | 面试题 16.18. 模式匹配 | ✅ |
67 | 简单 | 67. 二进制求和 | 67. 二进制求和 | ✅ |
剑指Offer 09 | 简单 | 剑指 Offer 09. 用两个栈实现队列 | 剑指 Offer 09. 用两个栈实现队列 | ✅ |
718 | 中等 | 718. 最长重复子数组 | 最长重复子数组 | ✅ |
108 | 简单 | 108. 将有序数组转换为二叉搜索树 | 将有序数组转换为二叉搜索树 | ✅ |
39 | 中等 | 39. 组合总和 | 组合总和 | ✅ |
785 | 中等 | 785. 判断二分图 | 判断二分图 | ✅ |
背包问题
01背包问题
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
416 | 中等 | 416. 分割等和子集 | 分割等和子集 | ✅ |
474 | 中等 | 474. 一和零 | 一和零 | ✅ |
1049 | 中等 | 1049. 最后一块石头的重量 II | 最后一块石头的重量 II | ✅ |
acwing 2 | 简单 | 2. 01背包问题 | 01背包问题 | ✅ |
完全背包问题
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
322 | 中等 | 322. 零钱兑换 | 零钱兑换 | ✅ |
518 | 中等 | 518. 零钱兑换 II | 零钱兑换 II | ✅ |
377 | 中等 | 377. 组合总和 Ⅳ | 组合总和 Ⅳ | ✅ |
279 | 中等 | 完全平方数 | 完全平方数 | ✅ |
acwing 3 | 简单 | 3. 完全背包问题 | 3. 完全背包问题 | ✅ |
多重背包问题
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
acwing 4 | 简单 | 多重背包问题 | 多重背包问题 I | ✅ |
acwing 5 | 中等 | 多重背包问题 II | 多重背包问题 2 | ✅ |
acwing 6 | 困难 | 多重背包问题 III |
其他背包问题
题号 | 难度 | 题目链接 | 答案链接 | 是否完成 |
---|---|---|---|---|
acwing 7 | 中等 | 混合背包问题 | 混合背包问题 | ✅ |
acwing 8 | 中等 | 二维费用的背包问题 | 二维费用的背包问题 | ✅ |
acwing 9 | 中等 | 分组背包问题 | 分组背包问题 | ✅ |
acwing 10 | 困难 | 有依赖的背包问题 | 有依赖的背包问题 | ✅ |
acwing 11 | 中等 | 背包问题求方案数 | 背包问题求方案数 | ✅ |
acwing 12 | 中等 | 背包问题求具体方案 | 背包问题求具体方案 | ✅ |
每日一题
题号 | 难度 | 标签 | 题目链接 | 答案链接 |
---|---|---|---|---|
1894 | 中等 | 数组、二分查找、前缀和、模拟 | 1894. 找到需要补充粉笔的学生编号 | [1894. 找到需要补充粉笔的学生编号.py](https://github.com/menghuu/YALeetcode/blob/master/python3/1894. 找到需要补充粉笔的学生编号.py) |
704 | 简单 | 数组、二分查找 | 704. 二分查找 | [704. 二分查找.py](https://github.com/menghuu/YALeetcode/blob/master/python3/704. 二分查找.py) |
278 | 简单 | 二分查找、交互 | 278. 第一个错误的版本 | [278. 第一个错误的版本.py](https://github.com/menghuu/YALeetcode/blob/master/python3/278. 第一个错误的版本.py) |
35 | 简单 | 二分查找、数组 | 35. 搜索插入位置 | 35.搜索插入位置.py |
977 | 简单 | 双指针、数组、排序 | 977. 有序数组的平方 | 977.有序数组的平方.py |
189 | 中等 | 双指针、数组、数学(之前做过,但早已忘记) | 189. 旋转数组 | 189.旋转数组.py |