题解 | #连续子数组的最大和#

连续子数组的最大和

http://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484

    public int FindGreatestSumOfSubArray(int[] array) {
        //dp[i] 以 i 结尾的数组最大和
        if(array == null){
            return 0;
        }
        if(array.length == 1){
            return array[0];
        }
//         int[] dp = new int[array.length];
//         dp[0] = array[0];
//         int result = array[0];
        
//         for(int i = 1;i < array.length - 1; i++){
//             dp[i] =  Math.max(dp[i-1] +array[i], array[i]);
//             result = Math.max(dp[i],result);
//         }
//         return result;
        int result = 0;
        int temp = 0;
        int max = Integer.MIN_VALUE;
        for(int i = 0;i<array.length;i++){
            result += array[i];
            if(result > max){
                //累加后发现大于
                max = result;
            }
            if(result < 0){
                //累加小于0,重置 ,如果不重置,后面累加如果数字为负数,将更小,为正数,也变小,不如不加,这样还大,直接取后面的数
                result = 0;
            }
        }
        return max;

    }
}
全部评论

相关推荐

01-24 12:50
门头沟学院 C++
投票
菜狗二号:还有啥想的 指定国有行啊,去了就开始幸福美满的生活了,选华子不是折腾自己么,最终财富积累度是差不多的,但是幸福指数是相差甚远的
点赞 评论 收藏
分享
没有offer的呆呆:日常和暑期都投试一试,3月份机会挺多的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
牛客网
牛客企业服务