最大子串行和

2021-10-02 08:24:48 字數 570 閱讀 2648

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

示例:輸入: [-2,1,-3,4,-1,2,1,-5,4],

輸出: 6

解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。

這個問題還是乙個動態規劃問題,動態規劃問題的第一步就是找到狀態轉移方程。

先設定dp[i]陣列為存放最大子序和的陣列,i為最大子序和的最後乙個陣列座標。

要判斷dp[i]是否為最大座標,則要判定dp[i-1]是否是i-1個的最大子序和。

如果dp[i-1] < 0,則max = dp[i],否則dp[i] = dp[i-1] + nums[i]

以此類推,我們可以從第0個元素開始遍歷nums陣列,並比較每次遍歷後的max值來獲取最終的max值。

class

solution

else

max = math.

max(dp[i]

,max);}

return max;

}}

參考文獻:

.魚枕

和最大子串行

問題描述 第一行輸入乙個正整數n 1 n 100001 第二行輸入n個整數a 0 a 10000 求該組整數子串行最大的和。解決這個問題應該考慮輸入n較大的情況,也就是說,輸入100000個數字判斷它的和最大子串行應當也能很快地算出來。我看過很多求解的 有三重for迴圈的,有兩重for迴圈的,也有使...

最大子串行和

最大子串行是要找出由數組成的一維陣列中和最大的連續子串行。比如的最大子串行就是 它的和是8,達到最大 而 的最大子串行是,它的和是6。找最大子串行的方法很簡單,只要前i項的和還沒有小於0那麼子串行就一直向後擴充套件,否則丟棄之前的子串行開始新的子串行,同時我們要記下各個子串行的和,最後找到和最大的子...

和最大子串行

時間限制 1 sec 記憶體限制 512 mb 提交 3 解決 3 提交 狀態 討論版 對於乙個給定的長度為n的整數序列a,它的 子串行 的定義是 a中非空的一段連續的元素 整數 你要完成的任務是,在所有可能的子串行中,找到乙個子串行,該子串行中所有元素的和是最大的 跟其他所有子串行相比 程式要求你...