题目
给定一个数组arr,返回子数组的最大累加和。
例如,arr = [1, -2, 3, 5, -2, 6, -1],所有子数组中,[3, 5, -2, 6]可以累加出最大的和12,所以返回12。
思路
从第二个数开始,判断前几个数之和与当前数的大小,取较大的值给当前值。那么数组最后的那个值就是子数组最大累加和。
代码
public int maxsumofSubarray (int[] arr) {
for(int i=1;i<arr.length;i++){
arr[i]=Math.max(arr[i],arr[i]+arr[i-1]);
}
return arr[arr.length-1];
}