class Solution {
public:
int maxSubArray(vector<int>& nums) {
//状态表示和状态计算
vector<int> dp(nums.size()+1,INT_MIN);//他表示以当前I结尾的最大和
for(int i=1;i<=nums.size();i++){
//nums[i]肯定要加上的,这个是不变的部分,那么前面变的部分,需要分情况
dp[i]=max(dp[i-1],0)+nums[i-1];
}
int res=INT_MIN;
for(int i=0;i<dp.size();i++){
res=max(res,dp[i]);
}
return res;
}
};