常见算法及例题

例题来源于课本:算法笔记+计算机算法设计与分析

常见算法类型

  • 一、模拟:
  • 二、双指针:
  • 三、打表/散列:
  • 四、排序:
  • 五、二分:
  • 六、递归:
  • 七、回溯/DFS(递归):
  • 八、分治(递归):
  • 九、贪心:
  • 十、动态规划/递推:

一、模拟:

  • 图形输出:画X
  • 日期处理:判断周几
  • 进制转换:十进制转K进制
  • 数学:最大公约数与最小公倍数、大整数四则运算

二、双指针:

  • 归并排序
  • 快速排序
  • 2sum双指针

三、打表/散列:

  • 集合求差*
  • 集合求交
  • 集合求并
  • 012对*
  • 中间数*
  • 第K大

四、排序:

  • 考生排序*
  • 字符串升序排序
  • 最长矩形序列

五、二分:

  • 整数二分:
    • 寻找第一个1
    • 寻找第一个偶数
    • 单峰序列*
    • 旋转数组*
  • 浮点数二分
    • 方程求根*
    • 木棒切割问题
    • 快速幂*

六、递归:

  • 汉诺塔*
  • 自然数分解之最大积*
  • 自然数分解之方案数*

七、回溯/DFS(递归):

  • 数塔*
  • 游园会(子集树)
  • 迷宫问题*
  • 矩阵最大权值问题
  • 马的Hamilton周游路线问题
  • 全排列*
  • 子集* (防重复每次使用string s[10000]记录)
  • 组合(等价于k个的子集)
  • 标准二维表问题(排列树+判断)
  • 批处理作业调度问题(排列树+判断)
  • 符号三角形问题(排列数+判断)
  • N皇后问题(排列树+判断)*
  • 0-1背包问题(子集树+判断)
  • 图的m着色问题(排列树+判断)
  • 旅行售货员问题(排列树+判断)
  • 圆排列问题(排列树+判断)
  • 连续邮资问题(子集树+判断)

八、分治(递归):

  • 棋盘覆盖问题*
  • 数字螺旋矩阵*
  • 集合划分问题*
  • 整数因子分解*

九、贪心:

  • 区间不相交问题*
  • 区间选点问题
  • 活动安排问题、会场安排问题(先排序)
  • 多处最优服务次序问题
  • 虚拟汽车加油问题
  • 拼接最小数
  • 收集样本问题

十、动态规划/递推:

  • 线性DP
    • 最长公共子序列*
    • 最长不下降子序列*
    • 最大连续子序列和(一维)、最大长方体问题(三维)*
    • 最小m段和(难)
    • 自然数分解之最大积*
  • 区间DP
    • 最长回文子串 *
    • 矩阵连乘*
    • 石子合并*
    • 最优合并
    • 凸多边形最优三角剖分
    • 多边形游戏、环形石子合并*
    • 租用游艇问题
  • 背包DP
    • 01背包*
    • 完全背包
  • 其他DP
    • 最小消耗能量*
    • 最小涂色成本*
    • 编辑距离、字符串比较问题*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姓蔡小朋友

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值