結對開發 二維陣列的最大子陣列和

2022-08-29 23:09:27 字數 1310 閱讀 6128

題目:在原有的一位陣列上進行擴充套件,求二位陣列的最大子陣列的和:

題目:返回乙個二維整數陣列中最大子陣列的和。

要求: 輸入乙個二維整形陣列,陣列裡有正數也有負數。

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

求所有子陣列的和的最大值。

結對程式設計要求: 兩人結對完成程式設計任務。 一人主要負責程式分析,**程式設計。

一人負責**複審和**測試計畫。

結對開發過程:

這次的程式設計開發是基於上次的以為陣列,我和我的搭檔@快樂的小菜鳥開始了認真的討論,再結合課堂上的同學討論,如何能將二維陣列轉化為一位陣列,降低時間複雜度,這種方法的特殊邊界要考慮,首先求出p[i][j],表示以(0,0)為起點,以(i,j)為終點的的連續子陣列的和,起點是第a行,終點是第c行,然後轉換為一維連續子陣列的和;首先應該找出p[i][j],具體**如下:

#include using

namespace

std;

int maxsubarray(int **a,int n,int

m)

else

}}

//計算二維陣列最大子陣列的和

inttemp;

int max=a[0][0

];

intans;

//如果m==1

if(m==1)

else

if(ans

ans=temp;}}

} else

else

for(int k=m-2;k>=0;k--)

else

if(ans

ans=temp;}}

}}

return

ans;

}int

main()

} int ans=maxsubarray(a,n,m);

printf(

"二維陣列的最大子陣列之和是:%d\n

",ans);

return0;

}

程式結果測試:

實驗結束的感想:

當時看到的時候,感覺應該不是很難,但是想了半天也想不出來,直到老師讓同學去講台講了他們的想法,才給了我們一點啟發,然後再課下找到了一點資料,最後才勉強在別人的基礎上有了一點結果,才明白什麼事都不能想當然。

二維陣列最大子陣列的和 結對開發

程式要使用的陣列放在乙個叫 input.txt 的檔案中,檔案格式是 陣列的行數,陣列的列數,每一行的元素,用逗號分開 每乙個數字都是有符號32位整數,當然,行數和列數都是正整數。演算法思想 對於一維的陣列,我們可以很容易用動態規劃的方法求得最大子陣列 所以我們將i 0.n j i.n 列舉所有行的...

連通最大子陣列和(結對開發)

題目 返回乙個二維陣列中最大子陣列的和 連通性 設計思路 把數按行分成幾個一維陣列,對於該一維陣列,求出他們的最大連續陣列之和,並且記錄下最大連續陣列的第一位和最後一位的位置,之後判斷幾個一維陣列的最大 連續陣列的位置是否相接或包括 如,第一行是1和4,第二行是3和5,這樣就相連 最後在加上沒有包括...

求一維陣列的最大子陣列2 結對開發

題目 返回乙個整數陣列中最大子陣列的和。要求 輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。如果陣列a 0 a j 1 首尾相鄰,允許a i 1 a n 1 a 0 a j 1 之和最大。同時返回最大子陣列的位置。求所有子陣列的和的最大值。結...