连续子数组的最大和

连续子数组的最大和_第1张图片

这其实用到的是一个dp的动态规划数组来描写的。

用两个变量就能解决了,一个是max(记录前i个数中子数组的最大的和), 一个是sum是记录前i个数组的和最大值和自己去比较,就是前i-1个和是8,自己是-2, 8 - 2 > -2,所以sum是8-2等于6, 再举个列子,sum是-1, 自己是2, -1 + 2 < 2,所以sum是2, 为什么呢?如果比自己大的话,你如果重新开始加减就是亏的,你还是要继续往后加,看有没有机会大于max,懂吧。

连续子数组的最大和_第2张图片

你可能感兴趣的:(c++)