| 1. 两数之和 | 跟其它oj系统不一样,不是简单的A+B了,掌握双指针解法 |
5. 最长回文子串 647. 回文子串 | 中心扩展算法与马拉车算法 |
| 31. 下一个排列 | 字典序的下一个排列 |
| 34. 在排序数组中查找元素的第一个和最后一个位置 | 二分查找的"左右"侧查找方式 |
46. 全排列 47. 全排列 II | 全排列 |
78. 子集 90. 子集 II | 全子集 |
| 50. Pow(x, n) | 快速幂 |
70. 爬楼梯 1137. 第 N 个泰波那契数 2851. 字符串转换 3337. 字符串转换后的长度 II | 矩阵快速幂 |
| 56. 合并区间 | 区间合并 |
| 89. 格雷编码 | 格雷编码 |
94. 二叉树的中序遍历 144. 二叉树的前序遍历 145. 二叉树的后序遍历 | 二叉树三种遍历方式 |
105. 从前序与中序遍历序列构造二叉树 106. 从中序与后序遍历序列构造二叉树 889. 根据前序和后序遍历构造二叉树 | 根据任意两种二叉树遍历还原二叉树 |
136. 只出现一次的数字 268. 丢失的数字 | 位运算异或性质 |
169. 多数元素 229. 多数元素 II | 摩尔投票 |
| 206. 反转链表 | 链表头插法 |
| 231. 2 的幂 | 获取二进制最低位1以及去除最低位1 |
| 28. 找出字符串中第一个匹配项的下标 | kmp 模板 |
| 459. 重复的子字符串 | kmp 中的 next 数组理解 |
2223. 构造字符串的总得分和 3303. 第一个几乎相等子字符串的下标 | 扩展kmp(z-box) |
| 120. 三角形最小路径和 | 典中典之自顶向下dp |
| 137. 只出现一次的数字 II | 数字电路设计 |
142. 环形链表 II 287. 寻找重复数 | 快慢指针(floyd 判圈) |
146. LRU 缓存 460. LFU 缓存 | 双向链表 |
| 204. 计数质数 | 质数模板,埃氏筛,线性筛 |
| 208. 实现 Trie (前缀树) | 字典树模板 |
| 261. 以图判树 | 判断图是否为树 |
271. 字符串的编码与解码 297. 二叉树的序列化与反序列化 428. 序列化和反序列化 N 叉树 | 序列化与反序列化 |
| 300. 最长递增子序列 | 一维最长递增子序列 |
| 354. 俄罗斯套娃信封问题 | 二维最长递增子序列 |
| 304. 二维区域和检索 - 矩阵不可变 | 二维前缀和 |
| 307. 区域和检索 - 数组可修改 | 一维树状数组、线段树模板 |
| 308. 二维区域和检索 - 可变 | 二维树状数组、线段树 |
| 343. 整数拆分 | 主要是里面的数学方法结论 |
| 382. 链表随机节点 | 水塘抽样 |
462. 最小操作次数使数组元素相等 II 1478. 安排邮筒 3086. 拾起 K 个 1 需要的最少行动次数 | 中位数到数组中所有数的距离和最短 |
| 469. 凸多边形 | 判断凸多边形 |
| 489. 扫地机器人 | 交互题理解回溯 |
| 547. 省份数量 | 并查集模板 |
| 877. 石子游戏 | 典中典之先手必胜 |
1143. 最长公共子序列 1092. 最短公共超序列 | lcs |
| 2736. 最大和查询 | 二分单调栈 |
| 2104. 子数组范围和 | 单调栈求"管辖区域" |
| 2281. 巫师的总力量和 | 单调栈求"管辖区域",区间内所有子数组求和的总和公式 |
| 2536. 子矩阵元素加 1 | 二维差分 |
1201. 丑数 III 2927. 给小朋友们分糖果 III 3116. 单面值组合的第 K 小金额 | 容斥原理 |
| 1227. 飞机座位分配概率 | 有趣的概率题 |
| 1382. 将二叉搜索树变平衡 | 尝试手撕avl |
1503. 所有蚂蚁掉下来前的最后一刻 2731. 移动机器人 | 有趣的脑筋急转弯 |
1584. 连接所有点的最小费用 1135. 最低成本连通所有城市 | 最小生成树 |
| 1245. 树的直径 | 树的直径 |
| 214. 最短回文串 | Rabin-Karp算法,正反向滚动哈希 |
| 1044. 最长重复子串 | Rabin-Karp算法,"前缀和"滚动哈希 |
| 233. 数字 1 的个数 | 数位dp模板 |
| 1397. 找到所有好字符串 | 数位dp + kmp |
| 587. 安装栅栏 | 二维凸包模板 |
| 1924. 安装栅栏 II | welzl算法,最小包围球 |
| 770. 基本计算器 IV | 这题应该是力扣里语义解释题中最难的了,过了这题,其它类似的题随便秒 |
803. 打砖块 3333. 找到初始输入字符串 II | 逆向思维题,所谓正难则反 |
| 850. 矩形面积 II | 扫描线 模板 |
| 1515. 服务中心的最佳位置 | 梯度下降法 |
| 1192. 查找集群内的关键连接 | tarjan求割点与桥模板题 |
| LCP 54. 夺回据点 | tarjan缩点 |
| 1483. 树节点的第 K 个祖先 | 树上倍增 |
236. 二叉树的最近公共祖先 2846. 边权重均等查询 2277. 树中最接近路径的节点 | lca模板,树上倍增算法,tarjan算法 |
| 2646. 最小化旅行的价格总和 | lca + 树上差分 |
| 2514. 统计同位异构字符串数目 | 排列数计算公式,获取有多少种排列 |
1830. 使字符串有序的最少操作次数 3109. 查找排列的下标 | 排列数计算公式,获取有多少种排列比现排列字典序小 |
| 2608. 图中的最短环 | 图的最短环 |
| 2360. 图中的最长环 | 图的最长环 |
| 14. 最长公共前缀 | lcp |
| 2573. 找出对应 LCP 矩阵的字符串 | lcp还原字符串 |
805. 数组的均值分割 LCP 82. 万灵之树 | 折半搜索 |
| 2123. 使矩阵中的 1 互不相邻的最小操作数 | 匈牙利算法(ntr算法),用于二分图最小点覆盖,即二分图最大匹配数 |
1908. Nim 游戏 II 2005. 斐波那契树的移除子树游戏 | 博弈论 Sprague-Grundy定理 |
LCP 74. 最强祝福力场 1956. 感染 K 种病毒所需的最短时间 | 最多重叠区域 |
| 2204. 无向图中到环的距离 | 无向基环树 |
2876. 有向图访问计数 2836. 在传球游戏中最大化函数值 | 内向基环树 |
| 2753. 计算一个环形街道上的房屋数量 II | 有趣的交互题 |
| 2979. 最贵的无法购买的商品 | 麦乐鸡定理(Chicken McNugget Theorem) |
| 752. 打开转盘锁 | A*(AStar) 算法 |
| 127. 单词接龙 | 双向bfs |
| 2471. 逐层排序二叉树所需的最少操作数目 | 置换环 |
| LCR 170. 交易逆序对的总数 | 一维偏序(逆序对) |
| 3027. 人员站位的方案数 II | 二维偏序 |
| 404 not found | 三维偏序 |
| 404 not found | 四维偏序 |
| 404 not found | 线性基 求数组的第k小子序列异或值 |
| LCP 35. 电动车游城市 | 最短路 dijkstra |
404 not found (貌似没找到包含负权边的最短路题) | 最短路 spfa |
| 1976. 到达目的地的方案数 | 最短路路径数 |
| 2045. 到达目的地的第二短时间 | 严格次短路 |
| 404 not found | 差分约束 + spfa |
1349. 参加考试的最大学生数 LCP 76. 魔法棋盘 | 轮廓线dp |
3213. 最小代价构造字符串 3292. 形成目标字符串需要的最少字符串数 II | ac自动机 |
1526. 形成目标数组的子数组最少增加次数 3229. 使数组等于目标数组所需的最少操作次数 | 根据前缀和结果数组还原差分数组 |
| 3181. 执行操作可获得的最大总奖励 II | bitset优化dp |
| 972. 相等的有理数 | 小数循环节 |
| Q4. 筹码游戏 | 概率期望题(情况数趋向于无穷) |
| 404 not found | 划分树[不含重复值] (求区间第k大数字) |
| 404 not found | 划分树[含有重复值] (求区间第k大数字) |
| 404 not found | ***树 (求区间第k大数字) |
| 404 not found | 无向图三元环计数 |
| 404 not found | 有向图三元环计数 |
| 404 not found | 范德蒙恒等式 |
| 3164. 优质数对的总数 II | 调和级数复杂度 (logm) |
3213. 最小代价构造字符串 3234. 统计 1 显著的字符串的数量 | 根号复杂度(L) |
| 3312. 查询排序后的最大公约数 | 根据数对gcd值获取数组中数对的计数 |
3241. 标记所有节点需要的时间 3313. 查找树中最后标记的节点 | 树形dp + 换根dp |
| 907. 子数组的最小值之和 | 贡献法 |
| 3018. 可处理的最大删除操作数 I | 由外向里 区间dp |
480. 滑动窗口中位数 3321. 计算子数组的 x-sum II 3279. 活塞占据的最大总区域 | 双堆对倒 |
3333. 找到初始输入字符串 II 3251. 单调数组对的数目 II | 前缀和优化dp |
| 3244. 新增道路查询后的最短距离 II | 并查集模拟删除 |
3219. 切蛋糕的最小总开销 II 3273. 对 Bob 造成的最少伤害 | 贪心,判断第i项与j项哪种操作更优 |
3171. 找到按位或最接近 K 的子数组 3209. 子数组按位与值为 K 的数目 | LogTrick |
| 3154. 到达第 K 级台阶的方案数 | 组合数学隔板法[不为空] |
| 2927. 给小朋友们分糖果 III | 组合数学隔板法[可为空] |
3149. 找出分数最低的排列 3348. 最小可整除数位乘积 II | 通过记忆化搜索构造出结果 |
3022. 给定操作次数内使剩余元素的或值最小 3145. 大数组元素的乘积 | 试填法 |
3145. 大数组元素的乘积 3344. 最大尺寸数组 | 获取区间[0,n]中所有数的二进制中相同数位为1的计数 |
| 3102. 最小化曼哈顿距离 | 曼哈顿距离 转换为 切比雪夫距离 |
| 2954. 统计感冒序列的数目 | 逆元 + 组合数学 模板 |
1953. 你可以工作的最大周数 3139. 使数组中所有元素相等的最小开销 | 里面的数学结论,有点难描述 |
| 3235. 判断矩形的两个角落是否可达 | 应该是力扣难度分最高的题,当时周赛时官解(指该题内置的解法代码)也是错的 |
| 3234. 统计 1 显著的字符串的数量 | {:width=400} ac前提下,跑得最久的题 |