Skip to content
On this page

最大子序和

TIP

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

子数组 是数组中的一个连续部分。

思路

  • dp[i]是以i元素结尾的连续子数组的最大和
js
var maxSubArray = function(nums) {
    if(nums.length===1) return nums[0]
    let dp = Array(nums.length+1).fill(0)
    dp[0] = nums[0]
    let res = dp[0]
    for(let i=1;i<nums.length;i++){
        dp[i] = Math.max(nums[i],dp[i-1]+nums[i])
        if(dp[i]>res)   res = dp[i]
    }
    return res
};