定义一个sum用于保存累加和,sum初始值为0,每次累加数组的第i个数,如果sum小于0了,就说明之前的总和会对之后的加和起到副作用,这时直接把sum置零。以下是代码实现 int max_sum(vector<int>& vec) { if(vec.size() <= 0) { return (1 << 31); } int max = vec[0]; int sum = 0; for(int i = 1; i <= vec.size()-1 ; i++) { sum = sum + vec[i]; max = sum > max ? sum :max ; if(sum < 0) { sum = 0; } } return max; }</int>