就,每次都计算求和的值,如果求和的sum比这个位置的值小,那么最大和就是这个位置的值,否则的话和就是之前的求和加上这个位置的值,这个的话也算是比较简单的程序了,依旧没什么好说的

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int sum=nums[0],max=sum;
        for(int i=1;i<nums.size();i++){
            if(sum+nums[i]<nums[i]){
                sum=nums[i];
            }else{
                sum+=nums[i];
            }
            if(max<sum) max=sum;
        }
        return max;
    }
};