算法——动态规划练习
2018-03-18 23:22
274 查看
前两篇博文已经稍微详细地讲了动态规划的概念、算法实现以及优化
上网搜几道题来实战
下面这个是从别人那里看到的题目,找到这道题的主要原因是我前几天看了网易的题目,emmm不会做。。。
没错我就是因为受了打击才开始研究算法的QAQ
文章太长了还没看,从点赞量来看应该是篇好文章,先用自己的方法试一试吧,不会再看答案
http://blog.csdn.net/baidu_28312631/article/details/47418773
问题描述:
数字三角形(POJ1163)
分析:①先用个数组存一下。
②求最优解问题,用动态规划的方法就是不管三七二十一列列看公式啦
先来个sum[i][j]表示当前站在第i行第j列的节点的最大和,要走到这个节点的话,就要考虑它上个节点的最大和咯
由图可以看出,有些节点有两个父亲有些有一个,也就是说当前节点要考虑上两个节点的情况(大部分两个嘛)
sum[i][j]=max{sum[i-1][j]+value[i][j]+value[i][j]}
我们画一下这个表(我把二维数组不需要用到的部分去掉,从结构上看还是用树比较开心)
得到最终结果是30
怎么找到路径呢?
从30往上找,它的父亲是20或25,在题干给出的二维数组中可以看出,30这个位置的节点原本数值是5,说明30是通过5加上5的父亲得到的,5的父亲=30-5=25,get到一条路,通过这种方法,找到路径如下:
看一下原博文的答案,是30。解答方法不一样,大概看了下,他是从下往上遍历的,万变不离其宗,不过博主的优化写得很棒,建议大家读一读,
就酱。
再推荐一篇文章
http://blog.csdn.net/yuxin6866/article/details/52507623
大家可以看下最长公共子序列和最长公共字串的算法,看完之后会爱上动态规划的,至于kmp算法,我明天再战!
上网搜几道题来实战
下面这个是从别人那里看到的题目,找到这道题的主要原因是我前几天看了网易的题目,emmm不会做。。。
没错我就是因为受了打击才开始研究算法的QAQ
文章太长了还没看,从点赞量来看应该是篇好文章,先用自己的方法试一试吧,不会再看答案
http://blog.csdn.net/baidu_28312631/article/details/47418773
问题描述:
数字三角形(POJ1163)
7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。路径上的每一步都只能往左下或右下走。只需要求出这个最大和即可,不必给出具体路径。 三角形的行数大于1小于等于100,数字为 0 - 99 输入格式: 5 //表示三角形的行数 接下来输入三角形 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 要求输出最大和
分析:①先用个数组存一下。
②求最优解问题,用动态规划的方法就是不管三七二十一列列看公式啦
先来个sum[i][j]表示当前站在第i行第j列的节点的最大和,要走到这个节点的话,就要考虑它上个节点的最大和咯
由图可以看出,有些节点有两个父亲有些有一个,也就是说当前节点要考虑上两个节点的情况(大部分两个嘛)
sum[i][j]=max{sum[i-1][j]+value[i][j]+value[i][j]}
我们画一下这个表(我把二维数组不需要用到的部分去掉,从结构上看还是用树比较开心)
得到最终结果是30
怎么找到路径呢?
从30往上找,它的父亲是20或25,在题干给出的二维数组中可以看出,30这个位置的节点原本数值是5,说明30是通过5加上5的父亲得到的,5的父亲=30-5=25,get到一条路,通过这种方法,找到路径如下:
看一下原博文的答案,是30。解答方法不一样,大概看了下,他是从下往上遍历的,万变不离其宗,不过博主的优化写得很棒,建议大家读一读,
就酱。
再推荐一篇文章
http://blog.csdn.net/yuxin6866/article/details/52507623
大家可以看下最长公共子序列和最长公共字串的算法,看完之后会爱上动态规划的,至于kmp算法,我明天再战!
相关文章推荐
- 每周算法练习——用动态规划求解最短路径问题
- 数据结构与算法练习-动态规划
- 每周算法练习——动态规划
- poj 1458 小白算法练习 Common Subsequence 动态规划
- 算法练习笔记(十)——动态规划之回文子列的查找
- 算法练习笔记(十一)— 动态规划之分解问题
- 算法练习 动态规划 装配线调度
- 最长公共子序列和回文字符串 动态规划 小白算法练习
- 算法练习 动态规划 硬币找零
- 算法练习(7) —— 动态规划 Strange Printer
- 2018年全国多校算法寒假训练营练习比赛(第二场) B.TaoTao要吃鸡(动态规划)
- 算法练习---跳跃游戏二(动态规划)
- poj 1163-小白算法练习 The Triangle 动态规划
- 算法练习(8) —— 动态规划
- 『LeetCode』练习第五弹_算法7,8题
- 算法题练习(一)-------a+b 整数转bit
- 算法期中练习——1001. 最小差
- 算法题2 动态规划之最大子序列和&最大子矩阵和
- 剑指offer-算法题练习:part14 c++多线程—2个线程并发售票系统-烽火众智
- leetcode 动态规划练习