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

连续子数组的最大和

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

dp[i]dp[i]表示以i作为结束的子数组最大和

dp[i]=max(array[i],dp[i1]+array[i])dp[i] = max(array[i],dp[i-1]+array[i])

含义:要么只选择array[i]array[i]一个元素,要么选择dp[i1]dp[i-1]选择的加上array[i]array[i]

function FindGreatestSumOfSubArray(array)
{
  let dp = new Array(array.length);
  dp[0] = array[0];
  //dp[i]表示以i作为结束的子数组最大和
  //dp[i] = Math.max(array[i],dp[i-1]+array[i])
  //含义:要么只选择array[i]一个元素,要么选择dp[i-1]选择的加上array[i]
  for(let i=1; i<array.length; i++){
    dp[i] = Math.max(array[i],dp[i-1]+array[i]);
  }
  
  return Math.max(...dp);
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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