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、整个循环里就是取加上一位之后最大的

京公网安备 11010502036488号