- 算法
- LeetCode算法题解
目录
- # 1. 数组
- # 1-1. 搜索1-1-1. 1.两数之和 1-1-2. 200.岛屿数量 1-1-3. 41.缺失的第一个正数 1-1-4. 1377. T 秒后青蛙的位置 1-1-5. 1091. 二进制矩阵中的最短路径 1-1-6. 448. 找到所有数组中消失的数字 1-1-7. 240. 搜索二维矩阵 II 1-1-8. 922. 按奇偶排序数组 II 1-1-9. 2862. 完全子集的最大元素和 1-1-10. 2857. 统计距离为 k 的点对 1-1-11. 752. 打开转盘锁 1-1-12. 剑指offer03 1-1-13. 剑指offer56 1-1-14. 剑指offer39 1-1-15. 剑指 Offer 46. 把数字翻译成字符串# 1-2. 二分查找1-2-1. 4.寻找两个正序数组中的中位数 1-2-2. 33.搜索旋转排序数组 1-2-3. 162.寻找峰值 1-2-4. 287. 寻找重复数 1-2-5. 2517. 礼盒的最大甜蜜度 1-2-6. 1170. 比较字符串最小字母出现频次 1-2-7. 34. 在排序数组中查找元素的第一个和最后一个位置 1-2-8. 2594. 修车的最少时间 1-2-9. 2560. 打家劫舍 IV 1-2-10. 2861. 最大合金数 1-2-11. 2258. 逃离火灾 1-2-12. 2008. 出租车的最大盈利 1-2-13. 1901. 寻找峰值 II 1-2-14. 410. 分割数组的最大值# 1-3. 排序1-3-1. 215.数组中的第K个最大元素(堆排,快排) 1-3-2. 88.合并两个有序数组 1-3-3. 179.最大数 1-3-4. 912. 归并排序 1-3-5. 1090. 受标签影响的最大值 1-3-6. 1439. 有序矩阵中的第 k 个最小数组和 1-3-7. 347. 前 K 个高频元素 1-3-8. 621. 任务调度器 1-3-9. 406. 根据身高重建队列 1-3-10. 2475. 数组中不等三元组的数目 1-3-11. 31. 下一个排列 1-3-12. 6929. 数组的最大美丽值 1-3-13. 2736. 最大和查询 1-3-14. 剑指 Offer 40. 最小的k个数 1-3-15. 剑指 Offer 45. 把数组排成最小的数 1-3-16. 剑指 Offer 51. 数组中的逆序对# 1-4. 边界判断1-4-1. 54.螺旋矩阵 1-4-2. 498.对角线遍历 1-4-3. 59.螺旋矩阵Ⅱ 1-4-4. 48. 旋转图像 1-4-5. 6425. 找到最长的半重复子字符串 1-4-6. 135. 分发糖果 1-4-7. 715. Range 模块 1-4-8. 剑指offer13# 1-5. 双指针法1-5-1. 15.三数之和 1-5-2. 209.长度最小的子数组 1-5-3. 88.合并两个有序数组 1-5-4. 122.买卖股票的最佳时机Ⅱ 1-5-5. 283.移动零 1-5-6. 26. 删除有序数组中的重复项 1-5-7. 75. 颜色分类 1-5-8. 11. 盛最多水的容器 1-5-9. 1156. 单字符重复子串的最大长度 1-5-10. 121.买卖股票的时机 1-5-11. 19. 删除链表的倒数第 N 个结点 1-5-12. 剑指offer21 1-5-13. 剑指 Offer 57. 和为s的两个数字# 1-6. 连续子数组1-6-1. 128.最长连续序列 1-6-2. 209.长度最小的子数组 1-6-3. 718.最长重复子数组 1-6-4. 152.乘积最大子数组 1-6-5. 581. 最短无序连续子数组 1-6-6. 918. 环形子数组的最大和# 1-7. 差分数组1-7-1. 6919. 使数组中的所有元素都等于零 1-7-2. 6929. 数组的最大美丽值 1-7-3. 2251. 花期内花的数目 1-7-4. 1094. 拼车 1-7-5. 2132. 用邮票贴满网格图# 1-8. 模拟1-8-1. 1093. 大样本统计 1-8-2. 6910. 将数组划分成若干好子数组的方式 1-8-3. 1253. 重构 2 行二进制矩阵 1-8-4. 2532. 过桥的时间 1-8-5. 874. 模拟行走机器人 1-8-6. 189. 轮转数组 1-8-7. 649. Dota2 参议院 1-8-8. 剑指 Offer 14- II. 剪绳子 II 1-8-9. 剑指 Offer 20. 表示数值的字符串 1-8-10. LCP 41. 黑白翻转棋 1-8-11. 剑指 Offer 62. 圆圈中最后剩下的数字 1-8-12. 剑指 Offer 67. 把字符串转换成整数
- # 2. 链表
- 2-1. 206.反转链表 2-2. 148.排序链表(归并、快排) 2-3. 25.K个一组翻转链表 2-4. 21.合并两个有序链表 2-5. 141.环形链表 2-6. 160.相交链表 2-7. 92.反转链表Ⅱ 2-8. 142.环形链表Ⅱ 2-9. 23.合并k个升序链表 2-10. 138.复制带随机指针的链表 2-11. 234. 回文链表 2-12. 1171. 从链表中删去总和值为零的连续节点 2-13. 剑指offer22 2-14. 剑指 Offer 35. 复杂链表的复制
- # 3. 字符串
- 3-1. 3.无重复字符的最长字串 3-2. 2451. 差值数组不同的字符串 3-3. 301. 删除无效的括号 3-4. 49. 字母异位词分组 3-5. 459. 重复的子字符串 3-6. 844. 比较含退格的字符串 3-7. 828. 统计子串中的唯一字符 3-8. 剑指offer05 3-9. 剑指offer38 3-10. 剑指 Offer 50. 第一个只出现一次的字符
- # 4. 二叉树
- 4-1. 102.二叉树的层序遍历 4-2. 103.二叉树的锯齿形层序遍历 4-3. 124.二叉树中的最大路径和 4-4. 236.二叉树的最近公共祖先 4-5. 105.从前序与中序遍历序列构造二叉树 4-6. 662.二叉树最大宽度 4-7. 1080. 根到叶路径上的不足节点 4-8. 101. 对称二叉树 4-9. 226. 翻转二叉树 4-10. 114. 二叉树展开为链表 4-11. 1110. 删点成林 4-12. 337. 打家劫舍 III 4-13. 979. 在二叉树中分配硬币 4-14. 222. 完全二叉树的节点个数 4-15. 513. 找树左下角的值 4-16. 968. 监控二叉树 4-17. 剑指offer34 4-18. 剑指 Offer 32 - III. 从上到下打印二叉树 III 4-19. 剑指 Offer 33. 二叉搜索树的后序遍历序列
- # 5. 动态规划
- 5-1. 5.最长回文子串 5-2. 72.编辑距离 5-3. 300.最长递增子序列 5-4. 1143.最长公共子序列 5-5. 239.滑动窗口最大值 5-6. 64.最小路径和 5-7. 718.最长重复子数组 5-8. 221.最大正方形 5-9. 198.打家劫舍 5-10. 152.乘积最大子数组 5-11. 1079.活字印刷 5-12. 139. 单词拆分 5-13. 6394. 字符串中的额外字符 5-14. 10. 正则表达式匹配 5-15. 1130. 叶值的最小代价生成树 5-16. 96. 不同的二叉搜索树 5-17. 279. 完全平方数 5-18. 416. 分割等和子集 5-19. 309. 最佳买卖股票时机含冷冻期 5-20. 312. 戳气球 5-21. 53. 最大子数组和 5-22. 1262. 可被三整除的最大和 5-23. 1186. 删除一次得到子数组最大和 5-24. 6912. 构造最长非递减子数组 5-25. 1911. 最大子序列交替和 5-26. 834. 树中距离之和 5-27. 343. 整数拆分 5-28. 123. 买卖股票的最佳时机 III 5-29. 115. 不同的子序列 5-30. 516. 最长回文子序列 5-31. 132. 分割回文串 II 5-32. 673. 最长递增子序列的个数 5-33. 2930. 重新排列后包含指定子字符串的字符串数目 5-34. 2646. 最小化旅行的价格总和 5-35. 剑指offer42 5-36. 剑指offer60 5-37. 剑指 Offer 49. 丑数
- # 6. 深搜回溯
- 6-1. 46.全排列 6-2. 93.复原IP地址 6-3. 1079.活字印刷 6-4. 6441. 求一个整数的惩罚数 6-5. 47. 全排列 II 6-6. 78. 子集 6-7. 79. 单词搜索 6-8. 207. 课程表 6-9. 399. 除法求值 6-10. 22. 括号生成 6-11. 39. 组合总和 6-12. 2746. 字符串连接删减字母 6-13. 931. 下降路径最小和 6-14. 40. 组合总和 II 6-15. 332. 重新安排行程 6-16. 51. N 皇后 6-17. 37. 解数独 6-18. 2050. 并行课程 III 6-19. 841. 钥匙和房间 6-20. 2850. 将石头分散到网格图的最少移动次数 6-21. 2316. 统计无向图中无法互相到达点对数 6-22. 剑指offer12 6-23. 剑指offer38
- # 7. 数学贪心
- 7-1. LCP 33. 蓄水 7-2. 6455. 使所有字符相等的最小成本 7-3. 55. 跳跃游戏 7-4. 2517. 礼盒的最大甜蜜度 7-5. 2611. 老鼠和奶酪 7-6. 6449. 收集巧克力 7-7. 1401. 圆和矩形是否有重叠 7-8. 2178. 拆分成最多数目的正偶数之和 7-9. 376. 摆动序列 7-10. 649. Dota2 参议院 7-11. 630. 课程表 III 7-12. 2136. 全部开花的最早一天 7-13. 2731. 移动机器人
- # 8. 堆栈队列
- 8-1. 394.字符串解码 8-2. 32. 最长有效括号 8-3. 739. 每日温度 8-4. 1130. 叶值的最小代价生成树 8-5. 84. 柱状图中最大的矩形 8-6. 42.接雨水 8-7. 85. 最大矩形 8-8. 239.滑动窗口最大值 8-9. 6891. 机器人碰撞 8-10. 445. 两数相加 II 8-11. 2762. 不间断子数组 8-12. 6919. 使数组中的所有元素都等于零 8-13. 862. 和至少为 K 的最短子数组 8-14. 1499. 满足不等式的最大值 8-15. 2856. 删除数对后的最小数组长度 8-16. 901. 股票价格跨度 8-17. 2034. 股票价格波动 8-18. 1488. 避免洪水泛滥 8-19. 2940. 找到 Alice 和 Bob 可以相遇的建筑 8-20. 2454. 下一个更大元素 IV
- # 9. 前缀和
- 9-1. 2559. 统计范围内的元音字符串数 9-2. 560. 和为 K 的子数组 9-3. 437. 路径总和 III 9-4. 238. 除自身以外数组的乘积 9-5. 1171. 从链表中删去总和值为零的连续节点 9-6. 1375. 二进制字符串前缀一致的次数 9-7. 1177. 构建回文串检测 9-8. 6927. 合法分割的最小下标 9-9. 2909. 元素和最小的山形三元组 II 9-10. 689. 三个无重叠子数组的最大和 9-11. 2866. 美丽塔 II
- # 10. 算法设计
- 10-1. 146.LRU缓存 10-2. 207. 拓扑排序 10-3. 10. 正则表达式匹配 10-4. 208. 前缀树 10-5. 2699. Dijkstra 10-6. 1483. 二进制倍增算法 10-7. 155. 最小栈 10-8. 2761. 欧拉线性筛 10-9. 297. 二叉树的序列化与反序列化 10-10. 28. KMP算法 10-11. 232. 用栈实现队列 10-12. 127. BFS广度优先搜索 10-13. 449. 序列化和反序列化二叉搜索树 10-14. 1462. floyed根可达性算法 10-15. 2603. 节点出入度数组 10-16. 460. LFU 缓存 10-17. 1993. 树上的操作 10-18. 剑指 Offer 41. 数据流中的中位数 10-19. 剑指 Offer 59 - II. 队列的最大值
- # 11. 位运算
- 11-1. 338. 比特位计数 11-2. 6471. 得到整数零需要执行的最少操作数 11-3. 2859. 计算 K 置位下标对应元素的和 11-4. 260. 只出现一次的数字 III 11-5. 421. 数组中两个数的最大异或值 11-6. 剑指offer65 11-7. 剑指 Offer 15. 二进制中1的个数 11-8. 剑指 Offer 16. 数值的整数次方 11-9. 剑指 Offer 43. 1~n 整数中 1 出现的次数 11-10. 剑指 Offer 44. 数字序列中某一位的数字 11-11. 剑指 Offer 56 - II. 数组中数字出现的次数 II
上次更新: 2023/12/15, 15:49:57