先看题目:
a[n]这个数组中,找到连续的一段数且保证这些数的和是最大的
举个例子
0 6 -1 1 -7 7 -5
result = 7
正常情况下你可以这么做
sum = 0;
sum = 6;
sum = 5;
sum = 6;
sum = -1;
sum = 6;
sum = 1;
这样你只需要加一个max,每一次加好之后和max进行比较就可以。
但是,你这样不断记录,比较,得出来的最终结果也只能是从0开始的连续的和最大的一段,你又如何才能获取最优的答案?
所以这里就需要我们动态规划的思想了,求最优。
你sum到了-1的时候,前面的东西直接舍弃就可以了,你如果给后面的是负数,那后面的数还不如不要你?
所以说就是利用了一个给后面的数提供最优的思想,解决了这个题目。
所以我举个例子。
0