数组
public static void main(String[] args) {
int[] nums=new int[]{-2,1};
System.out.println(maxSubArray(nums));
}
public static int maxSubArray(int[] nums) {
if (nums.length==1) return nums[0];
int sums,sum = nums[0];
for (int i = 0; i < nums.length; i++) {
sums=nums[i];
for (int j = i+1; j <nums.length; j++) {
sum=Math.max(Math.max(Math.max(sums,sums+nums[j]),sum),nums[j]);
sums+=nums[j];
}
}
return sum;
}
学以致用
- 在变得量中寻找最大的值
sum=Math.max(Math.max(Math.max(sums,sums+nums[j]),sum),nums[j]);