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

连续子数组的最大和

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

function FindGreatestSumOfSubArray(array)
{
    // write code here
    //特殊输入
    if (array.length==1){return array[0]}
    if (array.length==0){return null}
    
    //任意一个确定的下标i,对于这个位置的元素来说有两种情况:
    //1、前面的temp值小于零,temp取这个元素;
    //2、前面的temp值大于等于零,temp取前面的加和再加这个元素;
    //用一个临时变量temp去保存对于i位置的最大值,再和max变量中取最大值保存给max
    //注意:temp和max初始赋值不能为0,而必须赋值给第一项元素,因为要考虑到都是负数的情况
    let max = array[0]
    let temp = array[0]
    for(let i =1;i<array.length;i++){
        temp = Math.max(array[i],temp+array[i])
        max=Math.max(max,temp)
    }
    return max
}
module.exports = {
    FindGreatestSumOfSubArray : FindGreatestSumOfSubArray
};
全部评论

相关推荐

点赞 评论 收藏
分享
牛客771574427号:恭喜你,华杰
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务