53. 最大子序和


給定一個整數數組 nums ,找到一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。

示例:

輸入: [-2,1,-3,4,-1,2,1,-5,4],
輸出: 6
解釋: 連續子數組 [4,-1,2,1] 的和最大,為 6。

思路: 連續子數組[ai,...aj]的和=從下標0開始至j結束的子數組和-從下標0開始至i-1結束的子數組和
Sum

ij =

 Sum

0j

- Sum

0(i-1)


即求 Max(Sum)-Min(Sum)
func maxSubArray(nums []int) int {
    sum:=0
    max:=nums[0]
    min:=0
    for _,v:=range nums{
        sum=sum+v
        if max<sum-min{
            max=sum-min
        }
        if min>sum{
            min=sum
        }
    }
    return max
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM