将前面累加和为0的项直接丢掉,重新计算。
int maxSubArray(int* nums, int len){
int max=INT_MIN, tmp=0;
int i=0;
for(i=0; i<len; i++){
tmp += nums[i];
if(tmp > max) max = tmp;
/* if current sum value <0, drop it and calculte it from 0 */
if(tmp < 0){
tmp = 0;
}
}
return max;
}