给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。
样例
给出数组[−2,2,−3,4,−1,2,1,−5,3]
,符合要求的子数组为[4,−1,2,1]
,其最大和为6
public int maxSubArray(int[] nums) {
if (nums == null || nums.length == 0) return 0;
int result = nums[0];
for(int j = 0;j<nums.length;j++){
int sum = 0;
int temp_result = nums[j];
for (int i=j; i<nums.length; i++) {
int temp = nums[i];
sum+=temp;
if(sum>temp_result)
temp_result = sum;
}
if(temp_result>result)
result = temp_result;
}
return result;
}