剑指 Offer 42. 连续子数组的最大和
输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。
要求时间复杂度为O(n)。
代码
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int sum = 0;
int minn = 0;
int ans = -2e9;
for (const auto& num : nums) {
sum += num;
ans = max(ans, sum - minn);
minn = min(minn, sum);
}
return ans;
}
};