1.代码
#include <vector>
#include <algorithm>
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int max_sum = nums[0];
int current_sum = nums[0];
for (int i = 1; i < nums.size(); ++i) {
current_sum = max(nums[i], current_sum + nums[i]);
max_sum = max(max_sum, current_sum);
}
return max_sum;
}
};
2.思路
用了动态规划,current_sum记录了以当前位置为末尾的最大子数组和,max_sum记录了当前的最大子数组和。