题解 | #子数组的最大累加和问题#

子数组的最大累加和问题

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;
    }
}
全部评论

相关推荐

头发暂时没有的KFC总裁:找廉价劳动力罢了
点赞 评论 收藏
分享
远山月晟:大佬太强了啊,这履历不随便面
投递中科院自动化所等公司10个岗位 > 听劝,这个简历怎么改
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务