当前位置: 首页 > article >正文

《算法宝典:全类型题目索引》

目录

 🌴递归、搜索与回溯

一、递归

二、二叉树中的深搜

三、穷举vs暴搜vs深搜vs回溯vs剪枝

四、综合练习

五、FloodFill 算法

六、记忆化搜索

🌵优选算法

一、双指针

二、滑动窗口

三、二分查找

四、前缀和

五、位运算

六、模拟

七、分治 - 快速排序

八、分治 - 归并排序

九、链表

十、哈希表

十一、字符串

十二、栈

十三、队列 + 宽搜(bfs)

十四、优先级队列(堆)

十五、BFS 解决 FloodFill 算法

十六、BFS 解决最短路问题

十七、多源 BFS

十八、BFS 解决拓扑排序

🌻贪心算法

🍇动态规划 

一、斐波那契数列模型

二、路径问题

三、简单多状态 dp 问题

四、子数组、子串系列

五、子序列问题

六、回文串问题

七、两个数组的 dp

八、01 背包问题

九、完全背包问题

十、二维费用的背包问题

十一、似包非包

十二、卡特兰数


未完待续……


 🌴递归、搜索与回溯

一、递归

  1. 面试题 08.06. 汉诺塔问题
  2. 21. 合并两个有序链表
  3. 206. 反转链表
  4. 24. 两两交换链表中的节点
  5. 50. Pow(x, n)
递归 1~5 题解

二、二叉树中的深搜

  1. 2331. 计算布尔二叉树的值
  2. 129. 求根节点到叶节点数字之和
  3. 814. 二叉树剪枝
  4. 98. 验证二叉搜索树
  5. 230. 二叉搜索树中第K小的元素
  6. 257. 二叉树的所有路径
深搜 1~6 题解

三、穷举vs暴搜vs深搜vs回溯vs剪枝

  1. 46. 全排列
  2. 78. 子集
穷举…剪枝 1~2 题解

四、综合练习

  1. 1863. 找出所有子集的异或总和再求和
  2. 47. 全排列 II
  3. 17. 电话号码的字母组合
  4. 22. 括号生成
  5. 77. 组合
  6. 494. 目标和
  7. 39. 组合总和
  8. 784. 字母大小写全排列
  9. 526. 优美的排列
  10. 51. N 皇后
  11. 36. 有效的数独
  12. 37. 解数独
  13. 79. 单词搜索
  14. 1219. 黄金矿工
  15. 980. 不同路径 III
递归与dfs综合练习 1~4 题解
递归与dfs综合练习 5~8 题解
递归与dfs综合练习 9~12 题解
递归与dfs综合练习 13~15 题解

五、FloodFill 算法

  1. 733. 图像渲染
  2. 200. 岛屿数量
  3. 695. 岛屿的最大面积
  4. 130. 被围绕的区域
  5. 417. 太平洋大西洋水流问题
  6. 529. 扫雷游戏
  7. LCR 130. 衣橱整理(原:面试题 13. 机器人的运动范围 )
floodfill算法 1~4 题解
floodfill算法 5~7 题解

六、记忆化搜索

  1. 509. 斐波那契数
  2. 62. 不同路径
  3. 300. 最长递增子序列
  4. 375. 猜数字大小 II
  5. 329. 矩阵中的最长递增路径
记忆化搜索 1~5 题解

🌵优选算法

一、双指针

  1. 283.移动零
  2. 1089.复写零
  3. 202.快乐数
  4. 11.盛最多水的容器
  5. 611.有效三角形的个数
  6. LCR 179.查找总价格为目标值的两个商品(原:剑指 offer:和为 s 的两个数)
  7. 15.三数之和
  8. 18.四数之和
双指针 1~4 题解
双指针 5~8 题解

二、滑动窗口

  1. 209.长度最小的子数组
  2. 3.无重复字符的最长子串
  3. 1004.最大连续1的个数 III
  4. 1658.将 x 减到 0 的最小操作数
  5. 904.水果成篮
  6. 438.找到字符串中所有字母异位词
  7. 30.串联所有单词的子串
  8. 76.最小覆盖子串
滑动窗口 1~4 题解
滑动窗口 5~8 题解

三、二分查找

  1. 704.二分查找
  2. 34.在排序数组中查找元素的第一个和最后一个位置
  3. 35.搜索插入位置
  4. 69.x 的平方根
  5. 852.山脉数组的峰顶索引
  6. 162.寻找峰值
  7. 153.寻找旋转排序数组中的最小值
  8. LCR 173.点名 (原:剑指 offer:0~n-1 中缺失的数字 )
二分查找 1~4 题解
二分查找 5~8 题解

四、前缀和

  1. DP34 【模板】一维前缀和
  2. DP35 【模板】二维前缀和
  3. 724.寻找数组的中心下标
  4. 238.除自身以外数组的乘积
  5. 560.和为 k 的子数组
  6. 974.和可被 k 整除的子数组
  7. 525.连续数组
  8. 1314.矩阵区域和
前缀和 1~4 题解
前缀和 5~8 题解

五、位运算

  1. 面试题 01.01. 判定字符是否唯一
  2. 268. 丢失的数字
  3. 371. 两整数之和
  4. 137. 只出现一次的数字 II
  5. 面试题 17.19. 消失的两个数字
  6. 191. 位1的个数
位运算 1~6 题解

六、模拟

  1. 1576. 替换所有的问号
  2. 495. 提莫攻击
  3. 6. Z 字形变换
  4. 38. 外观数列
  5. 1419. 数青蛙
模拟 1~5 题解

七、分治 - 快速排序

  1. 75. 颜色分类
  2. 912. 排序数组
  3. 215. 数组中的第K个最大元素
  4. LCR 159. 库存管理 III(原:剑指 Offer . 最小的k个数)
分治 - 快排 1~4 题解

八、分治 - 归并排序

  1. 912. 排序数组
  2. LCR 170. 交易逆序对的总数 (原:剑指 Offer . 数组中的逆序对)
  3. 315. 计算右侧小于当前元素的个数
  4. 493. 翻转对
分治 - 归并排序 1~4 题解

九、链表

  1. 2. 两数相加
  2. 24. 两两交换链表中的节点
  3. 143. 重排链表
  4. 23. 合并 K 个升序链表
  5. 25. K 个一组翻转链表

十、哈希表

  1. 1. 两数之和
  2. 面试题 01.02. 判定是否互为字符重排
  3. 217. 存在重复元素
  4. 219. 存在重复元素 II
  5. 49. 字母异位词分组

十一、字符串

  1. 14. 最长公共前缀
  2. 5. 最长回文子串
  3. 67. 二进制求和
  4. 43. 字符串相乘

十二、栈

  1. 1047. 删除字符串中的所有相邻重复项
  2. 844. 比较含退格的字符串
  3. 227. 基本计算器 II
  4. 394. 字符串解码
  5. 946. 验证栈序列

十三、队列 + 宽搜(bfs)

  1. 429. N 叉树的层序遍历
  2. 103. 二叉树的锯齿形层序遍历
  3. 662. 二叉树最大宽度
  4. 515. 在每个树行中找最大值

十四、优先级队列(堆)

  1. 1046. 最后一块石头的重量
  2. 703. 数据流中的第 K 大元素
  3. 692. 前K个高频单词
  4. 295. 数据流的中位数

十五、BFS 解决 FloodFill 算法

  1. 733. 图像渲染
  2. 200. 岛屿数量
  3. 695. 岛屿的最大面积
  4. 130. 被围绕的区域

十六、BFS 解决最短路问题

  1. 1926. 迷宫中离入口最近的出口
  2. 433. 最小基因变化
  3. 127. 单词接龙
  4. 675. 为高尔夫比赛砍树

十七、多源 BFS

  1. 542. 01 矩阵
  2. 1020. 飞地的数量
  3. 1765. 地图中的最高点
  4. 1162. 地图分析

十八、BFS 解决拓扑排序

  1. 207. 课程表
  2. 210. 课程表 II
  3. LCR 114. 火星词典

🌻贪心算法

  1. 860. 柠檬水找零
  2. 2208. 将数组和减半的最少操作次数
  3. 179. 最大数
  1. 376. 摆动序列
  2. 300. 最长递增子序列
  3. 334. 递增的三元子序列
  1. 674. 最长连续递增序列
  2. 121. 买卖股票的最佳时机
  3. 122. 买卖股票的最佳时机 II
  1. 1005. K 次取反后最大化的数组和
  2. 2418. 按身高排序
  3. 870. 优势洗牌
  1. 409. 最长回文串
  2. 942. 增减字符串匹配
  3. 455. 分发饼干
  1. 553. 最优除法
  2. 45. 跳跃游戏 II
  3. 55. 跳跃游戏
  1. 134. 加油站
  2. 738. 单调递增的数字
  3. 991. 坏了的计算器
  1. 56. 合并区间
  2. 435. 无重叠区间
  3. 452. 用最少数量的箭引爆气球
  1. 397. 整数替换
  2. 354. 俄罗斯套娃信封问题
  3. 1262. 可被三整除的最大和
  1. 1054. 距离相等的条形码
  2. 767. 重构字符串

🍇动态规划 

一、斐波那契数列模型

  1. 1137. 第 N 个泰波那契数
  2. 面试题 08.01. 三步问题
  3. 746. 使用最小花费爬楼梯
  4. 91. 解码方法

二、路径问题

  1. 62. 不同路径
  2. 63. 不同路径 II
  3. LCR 166. 珠宝的最高价值(原:剑指 Offer 47. 礼物的最大价值)
  4. 931. 下降路径最小和
  5. 64. 最小路径和
  6. 174. 地下城游戏

三、简单多状态 dp 问题

  1. 面试题 17.16. 按摩师
  2. 213. 打家劫舍 II
  3. 740. 删除并获得点数
  4. LCR 091. 粉刷房子(原:剑指 Offer II 091. 粉刷房子)
  5. 309. 买卖股票的最佳时机含冷冻期
  6. 714. 买卖股票的最佳时机含手续费
  7. 123. 买卖股票的最佳时机 III
  8. 188. 买卖股票的最佳时机 IV

四、子数组、子串系列

  1. 53. 最大子数组和
  2. 918. 环形子数组的最大和
  3. 152. 乘积最大子数组
  4. 1567. 乘积为正数的最长子数组长度
  5. 413. 等差数列划分
  6. 978. 最长湍流子数组
  7. 139. 单词拆分
  8. 467. 环绕字符串中唯一的子字符串

五、子序列问题

  1. 300. 最长递增子序列
  2. 376. 摆动序列
  3. 673. 最长递增子序列的个数
  4. 646. 最长数对链
  5. 1218. 最长定差子序列
  6. 873. 最长的斐波那契子序列的长度
  7. 1027. 最长等差数列
  8. 446. 等差数列划分 II - 子序列

六、回文串问题

  1. 647. 回文子串
  2. 5. 最长回文子串
  3. 1745. 分割回文串 IV
  4. 132. 分割回文串 II
  5. 516. 最长回文子序列
  6. 1312. 让字符串成为回文串的最少插入次数

七、两个数组的 dp

  1. 1143. 最长公共子序列
  2. 1035. 不相交的线
  3. 115. 不同的子序列
  4. 44. 通配符匹配
  5. 10. 正则表达式匹配
  6. 97. 交错字符串
  7. 712. 两个字符串的最小ASCII删除和
  8. 718. 最长重复子数组

八、01 背包问题

  1. DP41【模板】01背包
  2. 416. 分割等和子集
  3. 494. 目标和
  4. 1049. 最后一块石头的重量 II

九、完全背包问题

  1. DP42【模板】完全背包
  2. 322. 零钱兑换
  3. 518. 零钱兑换 II
  4. 279. 完全平方数

十、二维费用的背包问题

  1. 474. 一和零
  2. 879. 盈利计划

十一、似包非包

  1. 377. 组合总和 Ⅳ

十二、卡特兰数

  1. 96. 不同的二叉搜索树

http://www.kler.cn/a/566255.html

相关文章:

  • torch中维度操作总结(repeat,squeeze,unsqueeze,flatten,transpose)
  • 双足肌肉骨骼机器人 VS 传统钢铁结构机器人:科技新趋势与跨界创新
  • 计算机毕设-基于springboot的软件技术交流平台的设计与实现(附源码+lw+ppt+开题报告)
  • lambda表达式,函数式接口,方法引用,Stream流
  • PCEP介绍
  • Field 对象的使用
  • 基于结构光扫描的汽车前纵梁焊接总成及冲压件自动化三维检测系统研发与应用
  • Logic-RL: 小模型也能强推理,通过基于规则的强化学习提升大语言模型结构化推理能力
  • CentOS上安装Docker Compose(2)
  • Ubuntu 创建新用户及设置权限
  • 页面加载速度,如何优化提升?
  • C++ Primer 容器适配器
  • FPGA之硬件设计笔记-持续更新中
  • 在linux中部署Nginx项目的详细步骤
  • ETL系列-数据抽取(Extract)
  • 【星云 Orbit-F4 开发板】03e. 按键玩法五:按住一个独立按键不松手连续步进触发
  • ctfshow——域名TXT记录泄露
  • C++11新特性 thread线程类
  • DeepSeek集成开发全栈指南:解锁AI原生开发的终极工具箱
  • 计算机组成与接口12