题解 | #子数组的最大累加和问题#
子数组的最大累加和问题
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;
}
}