求陣列中最大子陣列的和

2022-06-13 08:03:13 字數 976 閱讀 6874

本篇部落格介紹第二週課上小測:求陣列中最大子陣列的和,使用c++實現。

**:

1 #include2

using

namespace

std;

3int

main()419

int ans=-100000;20

//再次遍歷,最大值即為最大子陣列的和

21for(i=1;i<=n;i++)

22 ans=max(ans,a[i]);

23 cout24return0;

25 }

求最大子陣列和的要點在於動態規劃,只要理解其意就能寫出**。

接下來改變了題目要求,陣列變為迴圈陣列,再求出最大子陣列的和。解決思路:迴圈陣列需要迴圈遍歷,這裡就令輸入的長度為n的陣列輸入兩次形成乙個長度為2n的新陣列,從頭開始遍歷(實現「迴圈」),再設定int變數k記錄子陣列的長度,如果該子陣列的長度k>=n,則下一次計算時不進行相加驗證操作,而是重新計算(子陣列長度無法大於陣列長度),最後進行遍歷得出最大子陣列和。**如下:

1 #include2

using

namespace

std;

3int

main()414

//計算子陣列和

15for (i = 2; i <= 2*n; i++)

1624

//若和不大於該數,證明不能連線成子陣列

25else

26 k = 1;27

}28//若k>=n,則證明該子陣列已經飽和,不能再加

29else

3034}35

int ans = -100000;36

//遍歷求出最大子陣列和

37for (i = 1; i <= 2*n; i++)

3842 cout << ans <43return0;

44 }

求陣列的最大子陣列和最大子陣列的和

輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為o n 例如輸入的陣列為1,2,3,10,4,7,2,5,和最大的子陣列為3,10,4,7,2,因此輸出為該子陣列的和18。include using n...

陣列中最大子陣列之和

一 目的 熟悉程式設計風格 自學簡單 python 簡單效能測試 二 程式設計 1 測試工具及注意事項 使用visual studio 2017進行編譯,求陣列中最大陣列之和。注意 1.題目說的是子陣列是連續的 2.題目只要求和,不需要返回陣列的具體位置 3.陣列的元素是整數 2 單元測試配置過程 ...

陣列中最大子陣列之和

採用暴力破解法 三重for迴圈找出所有子陣列進行對比 def maxsubarray array maxsum 0 for i in range 0,len array for j in range i,len array sum 0 for k in range i,j 1 sum sum arr...