刷题

刷题

经典数据结构

数组

题目 难度 状态
1. 两数之和 简单 通过
167. 两数之和 II - 输入有序数组 中等 通过
剑指 Offer II 006. 排序数组中两个数字之和 简单 通过
剑指 Offer 57. 和为 s 的两个数字 简单 通过
136. 只出现一次的数字 简单 通过
217. 存在重复元素 简单 通过
2073. 买票需要的时间 简单 通过
26. 删除有序数组中的重复项 简单 未通过
27. 移除元素
283. 移动零
344. 反转字符串
5. 最长回文子串
263. 丑数 简单 未通过
264. 丑数 II 中等 未通过
1201. 丑数 III 中等 未通过
313. 超级丑数 中等 未通过
373. 查找和最小的 K 对数字

链表

题目 难度 通关
19. 删除链表的倒数第 N 个结点 中等 通过
21. 合并两个有序链表 简单 通过
23. 合并 K 个升序链表 困难 通过
83. 删除排序链表中的重复元素 简单 通过
82. 删除排序链表中的重复元素 II 中等 半通过
86. 分隔链表 简单 通过
876. 链表的中间结点 简单 通过
剑指 Offer 22. 链表中倒数第 k 个节点 简单 通过
141. 环形链表 简单 通过
142. 环形链表 II 中等 未通过
160. 相交链表 简单 半通过
1836. 从未排序的链表中移除重复元素 中等 半通过

栈和队列

题目 难度
20. 有效的括号 简单
225. 用队列实现栈 简单 通过
232. 用栈实现队列 简单 通过

解题套路

链表双指针技巧

LeetCode 力扣 难度
21. Merge Two Sorted Lists 21. 合并两个有序链表 🟢
86. Partition List 86. 分隔链表 🟠
23. Merge k Sorted Lists 23. 合并K个升序链表 🔴
141. Linked List Cycle 141. 环形链表 🟢
142. Linked List Cycle II 142. 环形链表 II 🟠
876. Middle of the Linked List 876. 链表的中间结点 🟢
19. Remove Nth Node From End of List 19. 删除链表的倒数第 N 个结点 🟠
160. Intersection of Two Linked Lists 160. 相交链表 🟢
264. Ugly Number II 264. 丑数 II 🟠
378. Kth Smallest Element in a Sorted Matrix 378. 有序矩阵中第 K 小的元素 🟠
373. Find K Pairs with Smallest Sums 373. 查找和最小的 K 对数字 🟠
82. Remove Duplicates from Sorted List II 82. 删除排序链表中的重复元素 II 🟠
2. Add Two Numbers 2. 两数相加 🟠
445. Add Two Numbers II 445. 两数相加 II 🟠

递归操作链表

LeetCode 力扣 难度
234. Palindrome Linked List 234. 回文链表 🟢
206. Reverse Linked List 206. 反转链表 🟢
92. Reverse Linked List II 92. 反转链表 II 🟠
25. Reverse Nodes in k-Group 25. K 个一组翻转链表 🔴

数组双指针技巧

LeetCode 力扣 难度
26. Remove Duplicates from Sorted Array 26. 删除有序数组中的重复项 🟢
83. Remove Duplicates from Sorted List 83. 删除排序链表中的重复元素 🟢
27. Remove Element 27. 移除元素 🟢
283. Move Zeroes 283. 移动零 🟢
167. Two Sum II - Input Array Is Sorted 167. 两数之和 II - 输入有序数组 🟠
344. Reverse String 344. 反转字符串 🟢
5. Longest Palindromic Substring 5. 最长回文子串 🟠
80. Remove Duplicates from Sorted Array II 80. 删除有序数组中的重复项 II 🟠
125. Valid Palindrome 125. 验证回文串 🟢
75. Sort Colors 75. 颜色分类 🟠
88. Merge Sorted Array 88. 合并两个有序数组 🟢
977. Squares of a Sorted Array 977. 有序数组的平方 🟢

二维数组操作技巧

LeetCode 力扣 难度
151. Reverse Words in a String 151. 反转字符串中的单词 🟠
48. Rotate Image 48. 旋转图像 🟠
54. Spiral Matrix 54. 螺旋矩阵 🟠
59. Spiral Matrix II 59. 螺旋矩阵 II 🟠
1329. Sort the Matrix Diagonally 1329. 将矩阵按对角线排序 🟠
1260. Shift 2D Grid 1260. 二维网格迁移 🟢
867. Transpose Matrix 867. 转置矩阵 🟢
14. Longest Common Prefix 14. 最长公共前缀 🟢

滑动窗口算法

LeetCode 力扣 难度
76. Minimum Window Substring 76. 最小覆盖子串 🔴
567. Permutation in String 567. 字符串的排列 🟠
438. Find All Anagrams in a String 438. 找到字符串中所有字母异位词 🟠
3. Longest Substring Without Repeating Characters 3. 无重复字符的最长子串 🟠
1658. Minimum Operations to Reduce X to Zero 1658. 将 x 减到 0 的最小操作数 🟠
713. Subarray Product Less Than K 713. 乘积小于 K 的子数组 🟠
219. Contains Duplicate II 219. 存在重复元素 II 🟢
220. Contains Duplicate III 220. 存在重复元素 III 🔴
209. Minimum Size Subarray Sum 209. 长度最小的子数组 🟠

二分搜索算法

LeetCode 力扣 难度
704. Binary Search 704. 二分查找 🟢
34. Find First and Last Position of Element in Sorted Array 34. 在排序数组中查找元素的第一个和最后一个位置 🟠
875. Koko Eating Bananas 875. 爱吃香蕉的珂珂 🟠
1011. Capacity To Ship Packages Within D Days 1011. 在 D 天内送达包裹的能力 🟠
410. Split Array Largest Sum 410. 分割数组的最大值 🔴

前缀和/差分技巧

LeetCode 力扣 难度
303. Range Sum Query - Immutable 303. 区域和检索 - 数组不可变 🟢
304. Range Sum Query 2D - Immutable 304. 二维区域和检索 - 矩阵不可变 🟠
1109. Corporate Flight Bookings 1109. 航班预订统计 🟠
1094. Car Pooling 1094. 拼车 🟠

LeetCode 力扣 难度
71. Simplify Path 71. 简化路径 🟠
143. Reorder List 143. 重排链表 🟠
20. Valid Parentheses 20. 有效的括号 🟢
150. Evaluate Reverse Polish Notation 150. 逆波兰表达式求值 🟠
225. Implement Stack using Queues 225. 用队列实现栈 🟢
388. Longest Absolute File Path 388. 文件的最长绝对路径 🟠

队列

LeetCode 力扣 难度
933. Number of Recent Calls 933. 最近的请求次数 🟢
622. Design Circular Queue 622. 设计循环队列 🟠
641. Design Circular Deque 641. 设计循环双端队列 🟠
1670. Design Front Middle Back Queue 1670. 设计前中后队列 🟠
2073. Time Needed to Buy Tickets 2073. 买票需要的时间 🟢

单调栈技巧

LeetCode 力扣 难度
1019. Next Greater Node In Linked List 1019. 链表中的下一个更大节点 🟠
1944. Number of Visible People in a Queue 1944. 队列中可以看到的人数 🔴
1475. Final Prices With a Special Discount in a Shop 1475. 商品折扣后的最终价格 🟢
901. Online Stock Span 901. 股票价格跨度 🟠
402. Remove K Digits 402. 移掉 K 位数字 🟠
853. Car Fleet 853. 车队 🟠
581. Shortest Unsorted Continuous Subarray 581. 最短无序连续子数组 🟠

单调队列技巧

LeetCode 力扣 难度
239. Sliding Window Maximum 239. 滑动窗口最大值 🔴
1438. Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit 1438. 绝对差不超过限制的最长连续子数组 🟠
862. Shortest Subarray with Sum at Least K 862. 和至少为 K 的最短子数组 🔴
918. Maximum Sum Circular Subarray 918. 环形子数组的最大和 🟠

二叉树

LeetCode 力扣 难度
226. Invert Binary Tree 226. 翻转二叉树 🟢
114. Flatten Binary Tree to Linked List 114. 二叉树展开为链表 🟠
116. Populating Next Right Pointers in Each Node 116. 填充每个节点的下一个右侧节点指针 🟠
654. Maximum Binary Tree 654. 最大二叉树 🟠
105. Construct Binary Tree from Preorder and Inorder Traversal 105. 从前序与中序遍历序列构造二叉树 🟠
106. Construct Binary Tree from Inorder and Postorder Traversal 106. 从中序与后序遍历序列构造二叉树 🟠
889. Construct Binary Tree from Preorder and Postorder Traversal 889. 根据前序和后序遍历构造二叉树 🟠
297. Serialize and Deserialize Binary Tree 297. 二叉树的序列化与反序列化 🔴
236. Lowest Common Ancestor of a Binary Tree 236. 二叉树的最近公共祖先 🟠
235. Lowest Common Ancestor of a Binary Search Tree 235. 二叉搜索树的最近公共祖先 🟠
222. Count Complete Tree Nodes 222. 完全二叉树的节点个数 🟠

二叉搜索树

LeetCode 力扣 难度
230. Kth Smallest Element in a BST 230. 二叉搜索树中第K小的元素 🟠
538. Convert BST to Greater Tree 538. 把二叉搜索树转换为累加树 🟠
1038. Binary Search Tree to Greater Sum Tree 1038. 从二叉搜索树到更大和树 🟠
450. Delete Node in a BST 450. 删除二叉搜索树中的节点 🟠
701. Insert into a Binary Search Tree 701. 二叉搜索树中的插入操作 🟠
700. Search in a Binary Search Tree 700. 二叉搜索树中的搜索 🟢
98. Validate Binary Search Tree 98. 验证二叉搜索树 🟠
96. Unique Binary Search Trees 96. 不同的二叉搜索树 🟠
95. Unique Binary Search Trees II 95. 不同的二叉搜索树 II 🟠

数据结构设计

LeetCode 力扣 难度
146. LRU Cache 146. LRU 缓存 🟠
460. LFU Cache 460. LFU 缓存 🔴
729. My Calendar I 729. 我的日程安排表 I 🟠
950. Reveal Cards In Increasing Order 950. 按递增顺序显示卡牌 🟠
1700. Number of Students Unable to Eat Lunch 1700. 无法吃午餐的学生数量 🟢
155. Min Stack 155. 最小栈 🟠
1670. Design Front Middle Back Queue 1670. 设计前中后队列 🟠
895. Maximum Frequency Stack 895. 最大频率栈 🔴
224. Basic Calculator 224. 基本计算器 🔴
227. Basic Calculator II 227. 基本计算器 II 🟠

图相关算法

LeetCode 力扣 难度
207. Course Schedule 207. 课程表 🟠
210. Course Schedule II 210. 课程表 II 🟠
990. Satisfiability of Equality Equations 990. 等式方程的可满足性 🟠
684. Redundant Connection 684. 冗余连接 🟠
1584. Min Cost to Connect All Points 1584. 连接所有点的最小费用 🟠
743. Network Delay Time 743. 网络延迟时间 🟠
1631. Path With Minimum Effort 1631. 最小体力消耗路径 🟠
1514. Path with Maximum Probability 1514. 概率最大的路径 🟠

DFS/回溯算法

LeetCode 力扣 难度
78. Subsets 78. 子集 🟠
90. Subsets II 90. 子集 II 🟠
77. Combinations 77. 组合 🟠
39. Combination Sum 39. 组合总和 🟠
40. Combination Sum II 40. 组合总和 II 🟠
216. Combination Sum III 216. 组合总和 III 🟠
46. Permutations 46. 全排列 🟠
47. Permutations II 47. 全排列 II 🟠
37. Sudoku Solver 37. 解数独 🔴
51. N-Queens 51. N 皇后 🔴
52. N-Queens II 52. N皇后 II 🔴
200. Number of Islands 200. 岛屿数量 🟠
1254. Number of Closed Islands 1254. 统计封闭岛屿的数目 🟠
695. Max Area of Island 695. 岛屿的最大面积 🟠
1905. Count Sub Islands 1905. 统计子岛屿 🟠
967. Numbers With Same Consecutive Differences 967. 连续差相同的数字 🟠
491. Non-decreasing Subsequences 491. 递增子序列 🟠
980. Unique Paths III 980. 不同路径 III 🔴
131. Palindrome Partitioning 131. 分割回文串 🟠
93. Restore IP Addresses 93. 复原 IP 地址 🟠
17. Letter Combinations of a Phone Number 17. 电话号码的字母组合 🟠
79. Word Search 79. 单词搜索 🟠

BFS 算法

LeetCode 力扣 难度
752. Open the Lock 752. 打开转盘锁 🟠
773. Sliding Puzzle 773. 滑动谜题 🔴
919. Complete Binary Tree Inserter 919. 完全二叉树插入器 🟠
841. Keys and Rooms 841. 钥匙和房间 🟠
433. Minimum Genetic Mutation 433. 最小基因变化 🟠
1926. Nearest Exit from Entrance in Maze 1926. 迷宫中离入口最近的出口 🟠
1091. Shortest Path in Binary Matrix 1091. 二进制矩阵中的最短路径 🟠
994. Rotting Oranges 994. 腐烂的橘子 🟠
721. Accounts Merge 721. 账户合并 🟠
127. Word Ladder 127. 单词接龙 🔴
365. Water and Jug Problem 365. 水壶问题 🟠

动态规划

LeetCode 力扣 难度
509. Fibonacci Number 509. 斐波那契数 🟢
322. Coin Change 322. 零钱兑换 🟠
300. Longest Increasing Subsequence 300. 最长递增子序列 🟠
354. Russian Doll Envelopes 354. 俄罗斯套娃信封问题 🔴
72. Edit Distance 72. 编辑距离 🔴
53. Maximum Subarray 53. 最大子数组和 🟠
1143. Longest Common Subsequence 1143. 最长公共子序列 🟠
583. Delete Operation for Two Strings 583. 两个字符串的删除操作 🟠
712. Minimum ASCII Delete Sum for Two Strings 712. 两个字符串的最小ASCII删除和 🟠
416. Partition Equal Subset Sum 416. 分割等和子集 🟠
518. Coin Change II 518. 零钱兑换 II 🟠

贪心算法

LeetCode 力扣 难度
55. Jump Game 55. 跳跃游戏 🟠
45. Jump Game II 45. 跳跃游戏 II 🟠
134. Gas Station 134. 加油站 🟠

分治算法

LeetCode 力扣 难度
23. Merge k Sorted Lists 23. 合并K个升序链表 🔴
241. Different Ways to Add Parentheses 241. 为运算表达式设计优先级 🟠

数学算法

LeetCode 力扣 难度
292. Nim Game 292. Nim 游戏 🟢
877. Stone Game 877. 石子游戏 🟠
319. Bulb Switcher 319. 灯泡开关 🟠
382. Linked List Random Node 382. 链表随机节点 🟠
398. Random Pick Index 398. 随机数索引 🟠
384. Shuffle an Array 384. 打乱数组 🟠
204. Count Primes 204. 计数质数 🟠
372. Super Pow 372. 超级次方 🟠

其他经典面试题

LeetCode 力扣 难度
42. Trapping Rain Water 42. 接雨水 🔴
11. Container With Most Water 11. 盛最多水的容器 🟠
263. Ugly Number 263. 丑数 🟢
264. Ugly Number II 264. 丑数 II 🟠
1201. Ugly Number III 1201. 丑数 III 🟠
313. Super Ugly Number 313. 超级丑数 🟠
528. Random Pick with Weight 528. 按权重随机选择 🟠
1. Two Sum 1. 两数之和 🟢
167. Two Sum II - Input Array Is Sorted 167. 两数之和 II - 输入有序数组 🟠
15. 3Sum 15. 三数之和 🟠
18. 4Sum 18. 四数之和 🟠