#include<bits/stdc++.h>
using namespace std;
/*
最大子列和
我的解体思路是:
定义一个当前和 和 一个最大和
如果当前和 大于 原来的最大和
那么就跟新 最大和 等于 当前和
*/
int MaxSub(int a[], int len){
int maxsum = 0,thissum = 0;
int i;
for(i = 0; i < len; i++){
thissum += a[i];
if(thissum > maxsum)
maxsum = thissum;
else if(thissum < 0)//当前序列和小于0 则舍去
thissum = 0;
}
return maxsum;
}
int main(){
int a[] = {1,2,3,-4,5};
int len = sizeof(a) / sizeof(int);
printf("%d",maxsum(a,len));
return 0;
}
04-12