思路代码
状态表示 当前位置为i,last表示[0, i-1]的最大子序和 now表示[0, i]的最大子序和,如果想让当前的now更大,那么last需要>=0
状态计算 now = max(0, last) nums[i] 状态计算
代码语言:javascript复制class Solution {
public:
int maxSubArray(vector<int>& nums) {
int last = 0;
int ans = INT_MIN;
int n = nums.size();
for (int i = 0; i < n; i ) {
int now = max(last, 0) nums[i];
ans = max(ans, now);
last = now;
}
return ans;
}
};