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

连续子数组的最大和

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 ;
    }
}

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

分享一个菜鸟的成长记录

全部评论

相关推荐

07-04 09:21
已编辑
Java
推拿大师:这是hr发的钓鱼贴吗
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 18:05
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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