题意:
找到一个具有最大和的连续子数组(子数组最少包含一个元素)。
分析:
状态表示: F[i]为以a[i]结尾的连续数组的最大和。
状态计算:
代码:
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int ans = nums[0], res = 0;
for (int i = 0; i < nums.size(); i ++) {
if (res > 0) {
res += nums[i];
} else {
res = nums[i];
}
if (res > ans)
ans = res;
}
return ans;
}
};
Q.E.D.