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

连续子数组的最大和

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

public static int FindGreatestSumOfSubArray(int[] array) {
        //取第一个为初始最大值
        int nowMax = array[0];
        int nowCount = array[0];
        //从第二个开始计算
        for (int i = 1; i < array.length; i++) {
            int val = array[i];
            //如果碰到负数,说明,当前值nowCount会变小,
            // 则记录当前的nowCount是否最大值
            if (val < 0 && nowCount > nowMax) {
                nowMax = nowCount;
            }
            nowCount += val;
            //如果加完之后,居然比没加之前要小,
            // 说明val更大,放弃之前的结果,从val开始重新计算
            if (nowCount < val) {
                nowCount = val;
            }
        }
        //对最终结果进行比较
        if (nowCount > nowMax) {
            nowMax = nowCount;
        }
        return nowMax;
    }
全部评论

相关推荐

11-13 20:16
已编辑
厦门理工学院 软件测试
专业嗎喽:硕佬,把学校背景放后面几段,学校背景双非还学院,让人看了就不想往下看。 把实习经历和个人奖项放前面,用数字化简述自己实习的成果和掌握的技能,比如负责项目一次通过率90%,曾4次发现项目潜在问题风险为公司减少损失等等
点赞 评论 收藏
分享
dian3b:挺妙的,如果上纲上线显得不合人心,但是这样以来既能监督适当摸鱼,也有一定的人文关怀。
摸鱼被leader发现了...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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