結對程式設計之求首尾相連陣列中最大子陣列的和

2022-06-02 17:27:09 字數 762 閱讀 5587

1.題目:

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

2.要求:

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

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

如果陣列a[0]……a[j-1]首尾相鄰,允許a[i-1], …… a[n-1], a[0]……a[j-1]之和最大。

同時返回最大子陣列的位置。

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

3.設計思想:

分情況討論最大子陣列可能出現的情況,第一種為正常情況,沒有超過陣列範圍,第二種則比較複雜,要用到環的一部分元素,分而求出兩種情況的最大值,進而比較大小就可以求得環形陣列的最大子陣列的和。

4.源**:

1 #include2

intmain()332

int tmp=total-min;

33 k=max>tmp?max:tmp;

34 cout<

陣列最大子陣列和為:

"36return0;

37 }

5.結果截圖:

6.心得體會:

通過課上同學們的提醒和建議,我們組的思路也差不多,更多的是考慮到複雜度的要求,這是個比較棘手的問題。問題難不怕,怕的是懶得去思考,懶得去動手實現和解決這一問題,結對程式設計則很好的彌補了這一缺陷。

首尾相連陣列的最大子陣列和

1.求0 n 1的最大子陣列和 m 1 2.求跨越 n 1和0的最大子陣列和,分別求從0開始的最大和m 21,從n 1開始的最大和m 22,分別記錄得到最大和的位置pi,pj,這裡分兩種情況考慮 a.pib.pi pj,則求0 n 1的最小子陣列和m 3,及0 n 1的和mx m max m 1,m...

首尾相連陣列的最大子陣列和

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 給定乙個由n個整數元素組成的陣列arr,陣列中有正數也有負數,這個陣列不是一般的陣列,其首尾是相連的。陣列中乙個或多個連續元素可以組成乙個子陣列,其中存在這樣的子陣列arr i arr n 1 arr 0 arr j 現在請你這...

返回整數陣列中最大子陣列的值(陣列首尾相連)

應王老師要求,返回子陣列的作業又來啦!這次的陣列是首尾相連的 先說一下我的想法,之前的作業都是可以直接遍歷整個陣列,因為陣列的長度是一定的,迴圈結束後就可以獲得到所有子陣列。但是這次作業的前提是陣列首尾相連,遍歷整個陣列是無法結束的。所以我可以先想象環狀的陣列斷開,利用二維陣列把斷開陣列的每個數被包...