labuladong的算法小抄
labuladong的算法小抄

labuladong的算法小抄

https://labuladong.online/algo/intro/quick-learning-plan


链表双指针

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

递归操作链表

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

数组双指针

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

二维数组操作技巧

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

滑动窗口算法

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

二分搜索算法

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

前缀和/差分技巧

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

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

队列

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

单调栈技巧

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

单调队列技巧

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

二叉树

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

二叉搜索树

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

数据结构设计

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

图相关算法

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

DFS/回溯算法

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

BFS 算法

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

动态规划

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

贪心算法

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

分治算法

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

数学算法

LeetCode力扣难度
292. Nim Game292. Nim 游戏🟢
877. Stone Game877. 石子游戏🟠
319. Bulb Switcher319. 灯泡开关🟠
382. Linked List Random Node382. 链表随机节点🟠
398. Random Pick Index398. 随机数索引🟠
384. Shuffle an Array384. 打乱数组🟠
204. Count Primes204. 计数质数🟠
372. Super Pow372. 超级次方🟠

其他经典面试题

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

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注