最大子陣列問題(動態規劃初級題目)

2021-10-04 17:19:02 字數 690 閱讀 2954

題目:

hz偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如:,連續子向量的最大和為8(從第0個開始,到第3個為止)。給乙個陣列,返回它的最大連續子串行的和,你會不會被他忽悠住?(子向量的長度至少是1)

思路1:通過雙重迴圈,將所有長度的所有子串和全部都求出來,每一次都與子串和最大值res進行對比,並不斷更新最大值,最終返回res。

**:

class

solution

return res;}}

;

思路2

dp[i]表示以元素array[i]結尾的最大連續子陣列和.

以[-2,-3,4,-1,-2,1,5,-3]為例

可以發現,

dp[0] = -2

dp[1] = -3

dp[2] = 4

dp[3] = 3

以此類推,會發現

dp[i] = max.

**:

class

solution

return res;}}

;

最大子陣列問題 動態規劃

昨天偶然上csdn,看到這個問題,學習了一種複雜度為o n 的演算法,可以計算array的最大子陣列問題。思路就是從0 length,將array累加起來,同時用乙個變數max記錄最大值,如果sum max,就更新max,如果sum 0 就令sum 0 為什麼是這樣呢,sum 0的話,前面的就可以直...

動態規劃 最大子陣列和問題

有整型陣列int a 求這個陣列的最大子陣列和 來手寫一下求取最大子陣列和序列的過程,用m i 表示第i個數所對應的最大子陣列和 s 0 1 m 0 1 s 1 max 1 m 1 max 1 s 2 max 3 m 2 max 3 s 3 max 13 m 3 max 13 s 4 max 9 m...

動態規劃 最大子陣列

解題思路 對於這樣乙個連續和的問題 個人習慣叫做最大連續和 如果我們要用動態規劃來解,首先得考慮狀態和狀態轉移方程。如果我們把題述陣列看成序列,那麼是不是可以用序列dp來考慮呢?我們不妨考慮乙個這樣的序列 1,3,5,2,4 a i 表示這個序列的第 i 個元素,dp i 表示最後乙個元素是a i ...