class Solution {
public:
//For example, given the array [-2,1,-3,4,-1,2,1,-5,4],//the contiguous subarray [4,-1,2,1] has the largest sum = 6int maxSubArray(vector<int>& nums) {
if (nums.size() == 0) return0;
int max_global = nums[0];
int max_current = max_global;
for (int i = 1; i < nums.size(); ++i) {
max_current = max(nums[i], nums[i]+max_current);
max_global = max(max_current, max_global);
}
return max_global;
}
};
dp
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int dp[nums.size()];
dp[0] = nums[0];
int max_global = dp[0];
for (int i = 1; i < nums.size(); i++) {
dp[i] = nums[i] + (dp[i-1] > 0 ? dp[i-1] : 0);
max_global = max(max_global, dp[i]);
}
return max_global;
}
};