小組成員(李夏蕾 楊世超)
這次的題目是接著上次的一維陣列進行的進一步的引申,雖然考慮了很多的方法,但還是覺得窮舉法是最保險的一種,下面是我們的思路:
我們採用的是自己輸入行數和列數,然後輸入資料進行測試。同時申請了兩個陣列用來存放子集的長度和寬度,好用來輸出。
主要的就是for迴圈了,首先是最外層的,先從i=0開始,當j=0時,先將包含a[0][0]的所有子集都遍歷一遍,並求出最大值,記錄下來,然後是a[0][1],如此迴圈下去。在迴圈中利用的是一維陣列求最大子集的方法,不同的是在其中加入了for(x=0;x而在遍歷過程中,通過比較max的值,讓其在每乙個資料中找出乙個最大的,同時記錄下最大值的行長度和列長度以便輸出。對於子陣列的輸出也和一維陣列相同,只是改為二維的而已。
下面是迴圈模組的**:
for(i=0;i)程式源**如下:if(max<=sum)
} }}
}
#includeusing執行結果如下:namespace
std;
#define n 100
intmain()
}for(i=0;i)
if(max<=sum)
} }}
}max=b[0][0
]; t=0
; n=0
;
for(i=0;i)}}
cout
<
最大子陣列和是:";
cout
cout
<
子串行為
"<
for(i=t;i<=d[t][n];i++)
cout
<
}return0;
}
二維陣列求最大子陣列
程式要使用的陣列放在乙個叫 input.txt 的檔案中,檔案格式是 陣列的行數,陣列的列數,每一行的元素,用逗號分開 每乙個數字都是有符號32位整數,當然,行數和列數都是正整數。演算法思想 對於一維的陣列,我們可以很容易用動態規劃的方法求得最大子陣列 所以我們將i 0.n j i.n 列舉所有行的...
求二維陣列中最大子陣列的和
題目 給出乙個 m n 的二維矩陣 元素可為正可為負 求該二維矩陣的乙個子矩陣,且此子矩陣中所有元素的和最大,並輸出該矩陣的和。分析 因為輸出的是矩陣,把每列資料中第i行到第j行進行相加,這樣得到乙個列矩陣,a 1.n 這樣就轉化成乙個一維整數陣列中最大子陣列的和,通過求得迴圈不同第i行到第j行之間...
二維陣列最大子陣列和
陣列輸出 int sum a 0 0 b,c n int imin 0,imax 0,jmin 0,jmax 0 for i 0 i c i a 0 i for i 1 i 4 i else b c j if sum b if i1 else for i imin i imax i cout cou...