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

 

func maxSubArray(nums []int) int {
    if len(nums)==1{
        return nums[0]
    }
    dp := make([]int,len(nums))
    dp[0]=nums[0]     //边界
    for i:=1;i<len(nums);i++{
        if nums[i]+dp[i-1]>nums[i]{
            dp[i]=nums[i]+dp[i-1]   //递推关系式
        }else{
            dp[i]=nums[i]
        }
    }
    max:=dp[0]
    for i:=0;i<len(nums);i++{
        if dp[i]>max{
            max=dp[i]
        }
    }
    return max
}

  

相关文章:

  • 2021-07-10
  • 2022-12-23
  • 2022-12-23
  • 2021-05-07
  • 2021-10-06
  • 2021-11-30
  • 2021-10-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-07-23
  • 2022-02-09
相关资源
相似解决方案