这个专题一共做了12道题,大部分是水题。
最开始做的时最大字段和问题,第i个位置表示从开始到该位置的最大子段和,最后输出最大的数值就可以了。
dp就是让每个数据和在他之前的每个数据进行比较,如果之前的数比他小,此位置的DP就加上之前的数,而他本身,已经初始化到dp数组中;最后输出最大的DP;
有时候觉得动态规划和贪心有一点像,深搜 + 贪心 = 最优,每一步都是目前的最优解,然后慢慢地累加起来,最后得出结果。
之前做过很多和斐波那契数列有关的题,觉得很有意思,一个公式就能把所有的结果计算出来,但是不明白它的原理是什么,现在学了dp,然后就明白了:拿第10题举例,如果要到第n层,那么就是在第n-1层时向上迈一步,在n-2层向上迈两步,那么到第n层的方法便是到n-1层 和 到n-2层的总和。
然后时01背包问题,这类题只做了一个,但是很典型,大体就是说,往背包里放东西,使用二维数组dp[i][j]只考虑放第i件物品,物品放入背包后背包的空间减少,等待放入下一件物品,直到将背包装满。