Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.
Example:
Input: [-2,1,-3,4,-1,2,1,-5,4],
Output: 6
Explanation: [4,-1,2,1] has the largest sum = 6.
public int maxSubArray(int[] nums) {
int max = nums[0];
int sum = 0;
for(int num : nums) {
//若sum < 0,则最终子序列肯定不包含目前的子序列。
if(sum < 0) {
sum = num;
}
else {
sum += num;
}
max = Math.max(max, sum);
}
return max;
}