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

连续子数组的最大和

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

public class Solution {
    public int FindGreatestSumOfSubArray(int[] array) {
        if(array == null || array.length == 0) {
            return 0 ;
        }
        if(array.length == 1) {
            return array[0] ;
        }
        //使用滚动数组,进行空间优化
        int f[] = new int[2] ;
        int old = 0 ;//上一次
        int cur = 1 ;//当前
        f[old] = array[0] ;
        int max = Integer.MIN_VALUE ;//记录计算过程中的最大值
        for(int i = 1 ; i < array.length ; i ++) {
            f[cur] = Math.max(array[i] , f[old] + array[i])  ;
            if(f[cur] > max) {
                max = f[cur] ;
            }
            old = cur ;//上一次脚标,更新为当前
            cur = 1-cur ;//当前更新为上一次
        }
         return max ;
    }
}

一个菜鸟的算法刷题记录 文章被收录于专栏

分享一个菜鸟的成长记录

全部评论

相关推荐

头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务