返回乙個整數陣列中最大子陣列的和

2022-07-17 13:15:13 字數 1204 閱讀 4543

1.題目

要求:要求程式必須能處理1000 個元素;

每個元素是int32 型別的;

輸入乙個整形陣列,陣列裡有正數也有負數。

陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。

求所有子陣列的和的最大值。要求時間複雜度為o(n)。

2.設計思想。

分別計算出所有子陣列的和,進行比較,找出最大子陣列。

3.**。

#include#include

using

namespace

std;

#include

#include

#define max 100000

intmain()

for(int l=1;l1;l++)

else

m=m+a[j];

}b[n]=m;

m=0; n=n+1

; }

}int max=b[0

];

for(i=1;i)

/*for(i=0;i=r&&r>=0)

if(m==0&&r>0&&j!=k-1)

if(m==0&&r==0&&t==k)

}*/cout

<

cout

<

該陣列中的最大子陣列的和為:

"/*cout<

m=m-1;

if(t==0)

for(i=m;i*/

return

0;

}

4.截圖。

該圖為查詢1000個數中的最大子陣列

陣列中最大能存入10位數,超過10位數,系統就會自動捨棄後面的部分,而且,不會報錯。

5.體會。

程式設計時一定要注意記憶體空間,不要超出最大記憶體,也不要超出陣列的上限,這樣會使系統出問題,但是程式不會報錯。這樣會使程式有很大的安全隱患。

返回乙個整數陣列中最大子陣列的和。

該題的意思是 如果乙個陣列為 1 5 3 19 5 3 第乙個數之後若是該數與前乙個數之和大於該數那麼將這個和替換概數 即5 1 5,5不變 而5 3 5 則將三替換為8以此類推 當乙個數與前乙個數之和再次小於這個數時,這個數為乙個下乙個的最小陣列,如5 3 19 11 5 5 則5為下乙個最小陣列...

返回乙個整數陣列中最大子陣列的和

1.設計思想 將一維迴圈陣列採用遍歷的方法來尋找最大子陣列,將含n個數的迴圈陣列依次從各個點斷開,產生n個n個陣列的單鏈陣列,再遍歷尋找最大子陣列。2.出現的問題 整形陣列的生成方式 3.可能的解決方案 整形陣列隨機生成,每個子陣列的資料個數也是隨機的。4.源 include using names...

返回乙個整數陣列中最大子陣列的和

設計思想 1.定義乙個一定長度的整數陣列。2.求連續的子陣列和 巢狀迴圈,1,12,123.2 23 234.3,34.345.出現的問題 每個和全部求出並輸出,開始想用乙個陣列存這些和,但是在這個巢狀迴圈裡面我感覺一維陣列不能實現,二維陣列也許可以。但是請教了一下同學,可以用 list集合 lis...