大和

package 最大数组子和;
public class FindMaxSumOfSubArray {
    /**
     * @param args
     */
    public static void main(String[] args) {
        FindMaxSumOfSubArray f = new FindMaxSumOfSubArray();
        int[] arr = { 1, -2, 3, 10, -4, 7, 2, -5 };
        System.out.println("MaxSum:" + f.findMaxSum(arr));
    }
    public Integer findMaxSum(int[] arr) {
        int curSum = 0;
        int maxSum = 0;
        int len = arr.length;
        if (arr == null || len == 0) {
            return null;
        }
        for (int i = 0; i < len; i++) {
            curSum += arr[i];
            if (curSum < 0) {
                curSum = 0;
            }
            if (curSum > maxSum) {
                maxSum = curSum;
            }
        }
        // all data are negative
        if (maxSum == 0) {
            for (int i = 0; i < len; i++) {
                if (i == 0) {
                    maxSum = arr[i];
                }
                if (arr[i] > maxSum) {
                    maxSum = arr[i];
                }
            }
        }
        return maxSum;
    }
}

 

posted @   互联.王  阅读(143)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示