zoukankan      html  css  js  c++  java
  • [Algorithm] 53. Maximum Subarray

    Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.

    Example:

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

    Follow up:

    If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.

    /**
     * @param {number[]} nums
     * @return {number}
     */
    var maxSubArray = function(nums) {
        if (!nums.length) {
            return null;
        }
        
        let start = end = -1;
        let crtDiff = maxDiff = Number.NEGATIVE_INFINITY;
        
        for (let i = 0; i < nums.length; i++) {
            
            crtDiff = Math.max(nums[i], crtDiff + nums[i])
            maxDiff = Math.max(crtDiff, maxDiff);
        }
    
        return maxDiff;
    };

    To locate the sub array:

    var maxSubArray = function(nums) {
        if (!nums.length) {
            return null;
        }
        
        let start = end = -1;
        let crtDiff = maxDiff = Number.NEGATIVE_INFINITY;
        
        for (let i = 0; i < nums.length; i++) {
            
            crtDiff = Math.max(nums[i], crtDiff + nums[i])
            maxDiff = Math.max(crtDiff, maxDiff);
            if (crtDiff === maxDiff) {
                if (nums[i] === crtDiff) {
                    start = end = i;
                }
                
                if (maxDiff > nums[i] && start < 0) {
                    start = end = i;
                } else if (maxDiff > nums[i] && start >= 0) {
                    end = i;
                }
            }
        }
    const sub
    = nums.slice(start, end + 1) return maxDiff; };
    // [ 4, -1, 2, 1 ] sum 6
  • 相关阅读:
    《SQL Server 2008从入门到精通》--20180628
    2019国赛
    [蓝桥杯2020] 湖北省省赛
    2019第十届蓝桥杯B组决赛题解第五题
    试题 算法提高 分解质因数
    大数相加减
    试题 算法提高 汉诺塔
    试题 算法提高 欧拉函数
    试题 算法提高 天天向上-dp
    算法训练 猴子吃包子-构造
  • 原文地址:https://www.cnblogs.com/Answer1215/p/12046404.html
Copyright © 2011-2022 走看看