1、对于当前已计算区间,只要sum<0则丢弃。单独的result记录历史最高,选取当前高于其的sum替换。
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int sum = 0;
int result = nums[0];
for(int i = 0; i < nums.size(); i++){
sum += nums[i];
result = (result < sum) ? sum : result;
sum = (sum < 0) ? 0 : sum;
}
return result;
}
};