53 最大子序和

2021-10-03 22:48:20 字數 690 閱讀 3264

思路

要求出乙個陣列當中最大和的一串串行。

1.是乙個動態規劃+貪心問題,對於每一步,都判斷當前的最好情況。即判斷之前的序列和是否大於零,如果之前的是負數,那麼顯然再加上之前的序列之後,序列和會變小,所以就捨去之前的序列,以當前數字為起始點,重新向後查詢。

2.這樣可以排除之前的序列,要求最大和,還需要排除之後的序列,所以引入變數res。最初使res和sum相等(sum是上一步驟中求的序列和),之後每次都比較sum和res的大小,將最大的那個重新賦值給res。這樣就可以保證res是最大的序列和啦。

**

int

maxsubarray

(vector<

int>

& nums)

while

(ielse

res=

max(res,sum)

; i++;}

return res;

}

執行結果

tips

乙個月之前就做了這道題,暴力法沒做出來,現在重新看,基本會做了,加油吧

53 最大子序和

給定乙個整數陣列nums,找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。兩個變數,乙個是ans,用來儲存 更新子串行 乙個maxn,始終儲存著當前最大的子串行。子串行...

53 最大子序和

題目 給定乙個整數陣列nums,找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6解釋 連續子陣列 4,1,2,1 的和最大,為 6。思路 因為要考慮連續,所以需注意兩點,與當前比較的必定包含當前節點的上乙個節點,前n個節點...

53 最大子序和

給定乙個整數陣列nums,找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6解釋 連續子陣列 4,1,2,1 的和最大,為 6。高階 如果你已經實現複雜度為 o n 的解法,嘗試使用更為精妙的分治法求解。package le...