美文网首页
53. 最大子数组和

53. 最大子数组和

作者: 邦_ | 来源:发表于2022-07-12 19:06 被阅读0次

动态规划。dp[i]表示以第i个元素结尾的和的最大值


func maxSubArray(_ nums: [Int]) -> Int {
        let len = nums.count
        if len == 1 {
            return nums[0]
        }
        var dp = Array.init(repeating: 0, count: len)
        dp[0] = nums[0]
        for i in 1..<len {
            
            if dp[i - 1] > 0 {
                dp[i] = dp[i - 1] + nums[i]
            }else {
                dp[i] = nums[i]
            }
        
        }
        return dp.max() ?? dp[0]
        
    }




优化版本

func maxSubArray(_ nums: [Int]) -> Int {
        let len = nums.count
        if len == 1 {
            return nums[0]
        }
        var maxValue = nums[0] ,maxSum = maxValue
        
        for i in 1..<len {
          
            if maxSum > 0 {
                maxSum += nums[i]
            }else {
                maxSum = nums[i]
            }
            maxValue = max(maxSum, maxValue)
          
        }
         return maxValue
        
    }

相关文章

  • [Leetcode] 53. 最大子序和

    53. 最大子序和 来源: 53. 最大子序和 1. 题目描述 给定一个整数数组 nums ,找到一个具有最大和...

  • 「动态规划」高频题-解题思路

    53.最大子数组和[https://leetcode.cn/problems/maximum-subarray/]...

  • Leetcode 53 最大子数组和

    53. 最大子数组和[https://leetcode-cn.com/problems/maximum-subar...

  • 最大子数组和

    53. 最大子数组和[https://leetcode-cn.com/problems/maximum-subar...

  • 53. 最大子序和

    题目链接: 53. 最大子序和 题目描述: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最...

  • 100天代码挑战:DAY4

    LeetCode 53. 最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含...

  • ARTS 打卡 3

    Algorithm 53. 最大子序和简单的解题思路是O(nlogn),使用一维数组记录index前面所有数的和,...

  • 动态规划1

    53. 最大子序和 70, 爬楼梯

  • 53. 最大子数组和

    动态规划。dp[i]表示以第i个元素结尾的和的最大值 优化版本

  • LeetCodeDay21 —— 最大子序和

    53. 最大子序和 描述 给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返...

网友评论

      本文标题:53. 最大子数组和

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