最大连续子序列和问题
题描述:求一组数列中连续子序列的最大和
想法:从前往后遍历数组,设置两个变量maxsum和nowsum。
分别存储到当前元素的最大序列和,到当前元素的序列和。
如果nowsum大于maxsum,则让maxsum=nowsum。
当nowsum大于0时,继续往后加,若nowsum小于0,则让nowsum=0。
任何数加上一个小于0的数的和肯定比之前更小。
for(int i=0;i<m;i++){
scanf("%d",&a);
nowsum+=a;
if(nowsum>maxsum){
maxsum=nowsum;
}
if(nowsum<0){
nowsum=0;
}
}