子数组最大累加和问题

    科技2022-08-01  121

    题目描述

    给定一个数组arr,返回子数组的最大累加和

    例如,arr = [1, -2, 3, 5, -2, 6, -1],所有子数组中,[3, 5, -2, 6]可以累加出最大的和12,所以返回12.

    [要求]

    时间复杂度为O(n)O(n),空间复杂度为O(1)O(1)

    示例1

    输入

    [1, -2, 3, 5, -2, 6, -1]

    输出

    12 int maxsumofSubarray(vector<int>& arr) { // write code here if(arr.empty()) return 0; int maxn = INT_MIN; int cur = 0; for(int i=0; i<arr.size();i++){ cur += arr[i]; maxn = max(maxn, cur); cur = cur < 0 ? 0 : cur; } return maxn; }

     

    Processed: 0.012, SQL: 8