示例代码
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int len=nums.size();
//dp[i]表示以i结尾的子数组的最大,而不是全局的最大
vector<int> dp(len+1,0);
int maxSum=nums[0];
for(int i=1;i<=len;i++){
dp[i]=max(dp[i-1]+nums[i-1],nums[i-1]);
maxSum=max(dp[i],maxSum);
}
return maxSum;
}
};
效果展示