class Solution {
public:
int maxSubArray(vector<int>& nums) {
if (nums.size() == 0) return 0;
vector<int> dp(nums.size());
dp[0] = nums[0];
int sum = dp[0];
for (int i=1;i<nums.size();i++)
{
dp[i] = max(dp[i - 1] + nums[i], nums[i]);
if (dp[i] > sum) sum = dp[i];
}
return sum;
}
};