遍历数组统计累加和,如果累加和小于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; } };