flame

路漫漫其修远兮 吾将上下而求索

0%

算法之题目集

前言

刷题之算法题目

数组双指针

⼆分搜索 34. 在排序数组中查找元素的第⼀个和最后⼀个位置 704. ⼆分查找 354. 俄罗斯套娃信封问题 392. 判断⼦序列 793. 阶乘函数后 K 个零 875. 爱吃⾹蕉的珂珂 1011. 在 D 天内送达包裹的能⼒

滑动窗⼝ 3. ⽆重复字符的最⻓⼦串 76. 最⼩覆盖⼦串 438. 找到字符串中所有字⺟异位词 567. 字符串的排列 239. 滑动窗⼝最⼤值

其他 26. 删除有序数组中的重复项 27. 移除元素 283. 移动零 42. 接⾬⽔ 986. 区间列表的交集 870. 优势洗牌 15. 三数之和 18. 四数之和

链表双指针

链表双指针 19. 删除链表的倒数第 N 个结点 21. 合并两个有序链表 23. 合并 K 个升序链表 141. 环形链表 142. 环形链表 II 160. 相交链表 876. 链表的中间结点 25. K 个⼀组翻转链表 83. 删除排序链表中的重复元素 92. 反转链表 II 234. 回⽂链表

前缀和

前缀和 303. 区域和检索 - 数组不可变 304. ⼆维区域和检索 - 矩阵不可变 560. 和为 K 的⼦数组

差分数组

差分数组 370. 区间加法 1094. 拼⻋ 1109. 航班预订统计

队列/栈算法

队列/栈算法 20. 有效的括号 921. 使括号有效的最少添加 1541. 平衡括号字符串的最少插⼊次数 225. ⽤队列实现栈 232. ⽤栈实现队列 22. 括号⽣成 239. 滑动窗⼝最⼤值

⼆叉堆

⼆叉堆 21. 合并两个有序链表 215. 数组中的第 K 个最⼤元素 295. 数据流的中位数

数据结构设计

数据结构设计 146. LRU 缓存机制 341. 扁平化嵌套列表迭代器 380. O(1) 时间插⼊、删除和获取随机元素 460. LFU 缓存 895. 最⼤频率栈

⼆叉树

⼆叉树 105. 从前序与中序遍历序列构造⼆叉树 106. 从中序与后序遍历序列构造⼆叉树 654. 最⼤⼆叉树 111. ⼆叉树的最⼩深度 114. ⼆叉树展开为链表 116. 填充每个节点的下⼀个右侧节点指针 226. 翻转⼆叉树 222. 完全⼆叉树的节点个数 297. ⼆叉树的序列化与反序列化 341. 扁平化嵌套列表迭代器 652. 寻找重复的⼦树

⼆叉搜索树

⼆叉搜索树 95. 不同的⼆叉搜索树 II 96. 不同的⼆叉搜索树 98. 验证⼆叉搜索树 450. 删除⼆叉搜索树中的节点 700. ⼆叉搜索树中的搜索 701. ⼆叉搜索树中的插⼊操作 230. ⼆叉搜索树中第 K ⼩的元素 538. 把⼆叉搜索树转换为累加树 1038. 把⼆叉搜索树转换为累加树 1373. ⼆叉搜索⼦树的最⼤键值和

图论算法

图的遍历 797. 所有可能的路径

⼆分图 785. 判断⼆分图 886. 可能的⼆分法

环检测/拓扑排序 207. 课程表 210. 课程表 II

并查集算法 130. 被围绕的区域 990. 等式⽅程的可满⾜性

最⼩⽣成树 261. 以图判树 1135. 最低成本联通所有城市 1584. 连接所有点的最⼩费⽤

最短路径 743. ⽹络延迟时间 1514. 概率最⼤的路径 1631. 最⼩体⼒消耗路径

回溯算法

回溯算法 22. 括号⽣成 37. 解数独 46. 全排列 77. 组合 78. ⼦集 51. N 皇后 494. ⽬标和 698. 划分为 k 个相等的⼦集

DFS 算法

DFS 算法 130. 被围绕的区域 200. 岛屿数量 694. 不同的岛屿数量 695. 岛屿的最⼤⾯积 1020. ⻜地的数量 1254. 统计封闭岛屿的数⽬ 1905. 统计⼦岛屿

BFS 算法

BFS 算法 111. ⼆叉树的最⼩深度 752. 打开转盘锁 773. 滑动谜题

动态规划

⼀维 DP

⼀维 DP 45. 跳跃游戏 II 55. 跳跃游戏 53. 最⼤⼦序和 198. 打家劫舍 213. 打家劫舍 II 337. 打家劫舍 III 300. 最⻓递增⼦序列 322. 零钱兑换 354. 俄罗斯套娃信封问题

⼆维 DP

⼆维 DP 10. 正则表达式匹配 64. 最⼩路径和 72. 编辑距离 121. 买卖股票的最佳时机 122. 买卖股票的最佳时机 II 123. 买卖股票的最佳时机 III 188. 买卖股票的最佳时机 IV 309. 最佳买卖股票时机含冷冻期 714. 买卖股票的最佳时机含⼿续费 174. 地下城游戏 312. 戳⽓球 416. 分割等和⼦集 494. ⽬标和 \514. ⾃由之路 518. 零钱兑换 II 583. 两个字符串的删除操作 712. 两个字符串的最⼩ ASCII 删除和 1143. 最⻓公共⼦序列 787. K 站中转内最便宜的航班 887. 鸡蛋掉落 931. 下降路径最⼩和

背包问题

背包问题 416. 分割等和⼦集 494. ⽬标和 518. 零钱兑换 II

经典算法

数学算法

数学算法 77. 组合 78. ⼦集 134. 加油站 136. 只出现⼀次的数字 191. 位 1 的个数 231. 2 的幂 172. 阶乘后的零 793. 阶乘函数后 K 个零 204. 计数质数 268. 丢失的数字 292. Nim 游戏 319. 灯泡开关 877. ⽯⼦游戏 295. 数据流的中位数 372. 超级次⽅ 382. 链表随机节点 398. 随机数索引 391. 完美矩形 509. 斐波那契数 645. 错误的集合 710. ⿊名单中的随机数

区间问题

区间问题 56. 合并区间 986. 区间列表的交集 1288. 删除被覆盖区间 435. ⽆重叠区间 452. ⽤最少数量的箭引爆⽓球 1024. 视频拼接