class Solution {
public:
int maxSubArray(vector<int>& nums) {
// 错误 忘记初始化dp大小 就索引
std::vector<int> dp(nums.size());
// dp[i] 到达nums[i]的最大和
dp[0]=nums[0];
int res = nums[0];
for (int i=1;i<nums.size();i++){
// 1延续之前子序和 2从当前开始
dp[i] = std::max(dp[i-1]+nums[i], nums[i]);
res = std::max(res, dp[i]);
}
return res;
}
};