来自左神b站开源课程的题单列表:
https://github.com/algorithmzuo/algorithm-journey/tree/main/src
入门
必备
归并分治(022)
随机选择排序(024)
215. 数组中的第K个最大元素 - 力扣(LeetCode)
堆结构(027)
2208. 将数组和减半的最少操作次数 - 力扣(LeetCode)
异或(030)
260. 只出现一次的数字 III - 力扣(LeetCode)
137. 只出现一次的数字 II - 力扣(LeetCode)
位(031)
链表高频(034)
数据结构设计高频题(035)
380. O(1) 时间插入、删除和获取随机元素 - 力扣(LeetCode)
381. O(1) 时间插入、删除和获取随机元素 - 允许重复 - 力扣(LeetCode)
432. 全 O(1) 的数据结构 - 力扣(LeetCode)
二叉树高频题(036、037)
103. 二叉树的锯齿形层序遍历 - 力扣(LeetCode)
297. 二叉树的序列化与反序列化 - 力扣(LeetCode)
105. 从前序与中序遍历序列构造二叉树 - 力扣(LeetCode)
222. 完全二叉树的节点个数 - 力扣(LeetCode)
236. 二叉树的最近公共祖先 - 力扣(LeetCode)
235. 二叉搜索树的最近公共祖先 - 力扣(LeetCode)
经典递归(038)
嵌套类题目(039)
最大公约数与同余原理(041)
gcd和lcm:
https://github.com/algorithmzuo/algorithm-journey/blob/main/src/class041/Code01_GcdAndLcm.java
同余原理:https://github.com/algorithmzuo/algorithm-journey/blob/main/src/class041/Code03_SameMod.java
对数器打表找规律(042)
根据数据量猜解法的技巧-天字第一号重要技巧
前缀树(044、045)
1804. 实现 Trie (前缀树) II - 力扣(LeetCode)
静态实现(推荐):字典树的实现_牛客题霸_牛客网
421. 数组中两个数的最大异或值 - 力扣(LeetCode)
一维前缀和(046)
303. 区域和检索 - 数组不可变 - 力扣(LeetCode)
未排序数组中累加和为给定值的最长子数组长度_牛客题霸_牛客网
未排序数组中累加和为给定值的最长子数组系列问题补1_牛客题霸_牛客网
1124. 表现良好的最长时间段 - 力扣(LeetCode)
1590. 使数组和能被 P 整除 - 力扣(LeetCode)
1371. 每个元音包含偶数次的最长子字符串 - 力扣(LeetCode)
一维差分和等差数列差分(047)
二维前缀和、二位差分、离散化技巧(048)
304. 二维区域和检索 - 矩阵不可变 - 力扣(LeetCode)
1139. 最大的以 1 为边界的正方形 - 力扣(LeetCode)
滑动窗口(049)
1234. 替换子串得到平衡字符串 - 力扣(LeetCode)
992. K 个不同整数的子数组 - 力扣(LeetCode)
395. 至少有 K 个重复字符的最长子串 - 力扣(LeetCode)
双指针(050)
922. 按奇偶排序数组 II - 力扣(LeetCode)
二分答案法(051)
719. 找出第 K 小的数对距离 - 力扣(LeetCode)
2141. 同时运行 N 台电脑的最长时间 - 力扣(LeetCode)
2187. 完成旅途的最少时间 - 力扣(LeetCode)
单调栈(052、053)
2289. 使数组按非递减顺序排列 - 力扣(LeetCode)
1504. 统计全 1 子矩形 - 力扣(LeetCode)
单调队列(054、055)
1438. 绝对差不超过限制的最长连续子数组 - 力扣(LeetCode)
P2698 [USACO12MAR] Flowerpot S - 洛谷
862. 和至少为 K 的最短子数组 - 力扣(LeetCode)
1499. 满足不等式的最大值 - 力扣(LeetCode)
2071. 你可以安排的最多任务数目 - 力扣(LeetCode)
并查集(056、057)
947. 移除最多的同行或同列石头 - 力扣(LeetCode)
2092. 找出知晓秘密的所有专家 - 力扣(LeetCode)
928. 尽量减少恶意软件的传播 II - 力扣(LeetCode)
洪水填充(058)
建图、链式前向星、拓扑排序(059、060)
2127. 参加会议的最多员工数 - 力扣(LeetCode)
最小生成树(061)
Kruskal算法模板(静态实现):
Prim算法模板:
类似题:P1194 买礼物 - 洛谷
1697. 检查边长度限制的路径是否存在 - 力扣(LeetCode)
bfs及其扩展(062)
2290. 到达角落需要移除障碍物的最小数目 - 力扣(LeetCode)
1368. 使网格图至少有一条有效路径的最小代价 - 力扣(LeetCode)