最大陣列連續子向量的最大和

2021-09-06 09:38:45 字數 921 閱讀 9467

最近研究最大陣列,稍微總結一下,以後繼續補充:

find the contiguous subarray within an array (containing at least one number) which has the largest sum.

for example, given the array[−2,1,−3,4,−1,2,1,−5,4],

the contiguous subarray[4,−1,2,1]has the largest sum =6.

分析:利用掃瞄演算法,從陣列最左端開始掃瞄,一直到最右端,並記下所碰到的最大總和子向量。最大總和的初值為0.

對於前m個元素,最大總和子陣列要麼在前m-1個元素中,要麼是其結束位置為m。

每日一道理

春蠶死去了,但留下了華貴絲綢;蝴蝶死去了,但留下了漂亮的衣裳;畫眉飛去了,但留下了美妙的歌聲;花朵凋謝了,但留下了縷縷幽香;蠟燭燃盡了,但留下一片光明;雷雨過去了,但留下了七彩霓虹。

還需注意的一種情況是若所有的元素都為負值,則問題轉化為求陣列中的最大數。

**如下:

int max(int l,int r)

return (l>r)?l:r;

int maxsubarray(int a, int n)

int tempmax=0,maxending=0,negative=a[0];

for(int i=0;imaxending = max(maxending+a[i],0);

tempmax = max(tempmax,maxending);

if(a[i]>negative)negative=a[i];

if(negative<0)return negative;

else return tempmax;

最大子向量和(連續子陣列的最大和)

題目1372 最大子向量和 連續子陣列的最大和 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 2132 解決 556 題目描述 hz 偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天 jobdu 測試組開完會後 他又發話了 在古老的一維模式識別中 常常需要計算連續子向量的最大和 當...

最大和連續子陣列

問題描述 乙個數值型陣列,其子陣列有多個,求其子陣列中最大的和值。所謂和值,是指數組所有元素相加的和。解法 1 掃瞄法,維護max變數,儲存最大和,其初始值為data 0 假設最大和子陣列的第一位下標為i,i從0到n 1,對於每個i值,從data i 開始,進行累加,每加乙個數,與max變數比較一次...

連續子陣列最大和

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