class Solution {
public:
    /**
     * max sum of the subarray
     * @param arr int整型vector the array
     * @return int整型
     */
    int maxsumofSubarray(vector<int>& arr) {
        // write code here
        int sum=0,sum1=-100000;
        for(int i=0;i<arr.size();i++){
            if(arr[i]<0&&sum+arr[i]<=0){
                sum=0;
                continue;
            }
            sum+=arr[i];
            sum1=max(sum1, sum);
        }
        return sum1;
    }
};

1、用累加器判断加上一位之后是否小于0
2、小于0则sum置为零从下一位开始
3、整个循环里就是取加上一位之后最大的