题解 | #子数组的最大累加和问题#
子数组的最大累加和问题
http://www.nowcoder.com/practice/554aa508dd5d4fefbf0f86e5fe953abd
定义一个cur=0 和 max=Integer的最小值。
然后遍历数组,cur+=arr[i],然后判断cur和max的最大值重新赋值给max,如果cur<0,我们就取0,否则还为cur。
import java.util.*; public class Solution { public int maxsumofSubarray (int[] arr) { // write code here if(arr == null ||arr.length == 0){ return 0; } int max = Integer.MIN_VALUE; int cur = 0; for(int i = 0; i < arr.length; i++){ cur += arr[i]; max = Math.max(max,cur); cur = cur < 0 ? 0 : cur; } return max; } }