遍历数组统计累加和,如果累加和小于0则统计后面的数时会导致亏损,还不如不加,不加就是将累加和置0。最大的累加和就是答案,用一个变量来记录。
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 max_sum = 0;
//遍历数组统计累加和,如果累加和小于0则统计后面的数时会导致亏损
//此时应该将累加和置0;
int curr_sum = 0;
for(auto& v: arr)
{
curr_sum += v;
curr_sum = max(curr_sum,0);
max_sum = max(max_sum, curr_sum);
}
return max_sum;
}
};
京公网安备 11010502036488号