作者简介:大家好,我是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.转移方程
-
根据可不断缩小规模的子问题直接得到;
-

最低0.47元/天 解锁文章
644

被折叠的 条评论
为什么被折叠?



