美文网首页
53. Maximum Subarray( JavaScript

53. Maximum Subarray( JavaScript

作者: f1a94e9a1ea7 | 来源:发表于2018-11-26 22:13 被阅读10次

    给一个整数数组,找出数组连续几个数加起来最大的那个值。

    Example:
    • Input: [-2,1,-3,4,-1,2,1,-5,4],
    • Output: 6
    • Explanation: [4,-1,2,1] has the largest sum = 6.

    解析:

    数组当前项 + 后一项 如果小于 后一项,则可以舍去当前项,直接用后一项继续向后加。

    参考于博客

    /**
     * @param {number[]} nums
     * @return {number}
     */
    var maxSubArray = function(nums) {
        if(nums.length==0) return 0;
        var maxSum = nums[0],curSum = nums[0];
        for(var i=1;i<nums.length;i++){
            if(nums[i]>curSum+nums[i]){
                curSum = nums[i]; 
            }else{
                curSum += nums[i];
            }
            if(curSum>maxSum){
                maxSum = curSum;
            }
        }
        return maxSum;
    };
    

    相关文章

      网友评论

          本文标题:53. Maximum Subarray( JavaScript

          本文链接:https://www.haomeiwen.com/subject/boiiqqtx.html