最大子向量問題

2021-04-20 11:36:29 字數 471 閱讀 3222

問題

:在乙個有n個

浮點數的向量

x中找出最大子向量,輸出最大子向量的和。

該問題在《程式設計珠璣》第八章中進行了詳細說明,下面列出《程式設計珠璣》中5種演算法的比較,並對最好的演算法進行說明。

maxsofar=0

maxendinghere=0

for i=[0,n)

上述**為演算法5的偽**。其思想是:在i個元素中,最大子向要麼在i-1個元素中,要麼就包括第i個元素。我們假設最大子向量為x[m...k],其範圍為:x[0]...x[m]...x[k]...x[n]。x[0]+x[1]+...+x[m-1]<0,x[k+1]+...x[n]<0。當i迴圈至m-1時maxendinghere會小0,maxendinghere=max(maxendinghere+x[i],0)會使maxendinghere為0重新計算子向量和。maxendinghere的作用就是計算i-1個元素中的最大子向量的開始處到i-1的和。

最大子向量和

何海濤 劍指offer 名企面試官精講典型程式設計題 九度oj 題目描述 hz偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天 jobdu 測試組開完會後 他又發話了 在古老的一維模式識別中 常常需要計算連續子向量的最大和 當向量全為正數的時候 問題很好解決。但是 如果向量中包含負數 是否應該包...

求連續向量的最大子和問題(掃瞄演算法)

問題來自 程式設計珠璣 這本書,我記得以前考研的時候模擬題目中也有過類似的題目,當時書上的 特別簡單易懂,不過也有些時日了,當時是怎樣寫的基本也就忘了。現在回過頭來在看看這個問題。1.問題描述 問題來自一維的模式識別,問題的輸入是具有n個浮點數的向量x,輸出是輸入向量的任何連續子向量的最大和。例如,...

最大子陣列問題

顧名思義,最大子陣列問題是求乙個陣列array中 和最大的非空連續子陣列 這樣的連續子陣列我們叫做最大子陣列,它的應用也有 很多,比如說找出時間序列中兩個時間節點使得這兩個時間節點對應的值的落差最大,如下圖 對於這類問題,通過求原始時間序列的一階差分得到序列array,此時求得array的最大子陣列...