关闭

练习3动态规划总结

92人阅读 评论(0) 收藏 举报

       这个专题一共做了12道题,大部分是水题。

最开始做的时最大字段和问题,第i个位置表示从开始到该位置的最大子段和,最后输出最大的数值就可以了。

dp就是让每个数据和在他之前的每个数据进行比较,如果之前的数比他小,此位置的DP就加上之前的数,而他本身,已经初始化到dp数组中;最后输出最大的DP;

有时候觉得动态规划和贪心有一点像,深搜 + 贪心 = 最优,每一步都是目前的最优解,然后慢慢地累加起来,最后得出结果。

之前做过很多和斐波那契数列有关的题,觉得很有意思,一个公式就能把所有的结果计算出来,但是不明白它的原理是什么,现在学了dp,然后就明白了:拿第10题举例,如果要到第n层,那么就是在第n-1层时向上迈一步,在n-2层向上迈两步,那么到第n层的方法便是到n-1层 和 到n-2层的总和。

然后时01背包问题,这类题只做了一个,但是很典型,大体就是说,往背包里放东西,使用二维数组dp[i][j]只考虑放第i件物品,物品放入背包后背包的空间减少,等待放入下一件物品,直到将背包装满。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2657次
    • 积分:282
    • 等级:
    • 排名:千里之外
    • 原创:27篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条