常见算法思想:动态规划法

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO

联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬

学习必须往深处挖,挖的越深,基础越扎实!

阶段1、深入多线程

阶段2、深入多线程设计模式

阶段3、深入juc源码解析

阶段4、深入jdk其余源码解析

阶段5、深入jvm源码解析

动态规划问题的分类

  • 求最大最小值

    • 从左上角走到右下角路径的最大数字和
    • 最长上升子序列长度
  • 计数

    • 有多少种方式...
    • 有多少种方法选出k个数使得和是sum
  • 求存在性

    • 取石子游戏,先手是否必胜
    • 能不能选出k个数使得和是sum

常见动态规划问题的类型

  • 坐标型动态规划(20%) :二维数组下标就是坐标,如机器人路线问题
  • 序列型动态规划(20%) :
  • 划分型动态规划(20%) :给一个字符串或数组让划分成若干段满足一些性质
  • 区间型动态规划(15%) :选择连续区间而符合一定条件,f(i,j)
  • 背包型动态规划(10%) :一定空间的背包最多带多少物品的问题
  • 最长序列型动态规划(5%) : 最长上升子序列等类似问题
  • 博弈型动态规划(5%) : 博弈算出一个人是否必胜还是必败或者胜率问题
  • 综合性动态规划(5%) : 综合前面类型或和其他算法结合
  • 动态规划空间优化问题,如数组降维
  • 动态规划打印路径问题,打印解

动态规划问题解决步骤

  • 0.为解题的每一步开辟一个等容量的数组存储每一步的结果

  • 1.确定状态

    • 最后一步:研究最优策略的最后一步;
    • 子问题:转换成可不断缩小规模的子问题;
  • 2.转移方程

    • 根据可不断缩小规模的子问题直接得到;

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值