1.題目。
題目:返回乙個二維整數陣列中最大子陣列的和。
要求:輸入乙個二維整形陣列,陣列裡有正數也有負數。
二維陣列首尾相接,象個一條首尾相接帶子一樣。
陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。
求所有子陣列的和的最大值。要求時間複雜度為o(n)。
2.設計思想。
分別求出每一行的最大子矩陣,然後再兩行相加,求出最大子矩陣,一直到所有的行相加,求出最大子矩陣。比較其中最大的子矩陣值,找出最大的。
3.**。
#includeusing4.執行結果。namespace
std;
#include
#include
#define max 10000
int max(int
b) n=0
; }
int max=m[0
];
for(i=0;i)
return
max;
}int
main()
cout
<
}for(i=0;i<4;i++)
int q=4
;
for(i=0;i<3;i++)
k[q]=max(h);
q++;
}for(i=0;i<2;i++)
k[q]=max(h);
q++;
}int t=0
; i=0
;
for(int j=0;j<8;j++)
k[q]=max(h);
q++;
cout
<
int max=k[0
];
for(i=0;i)
cout
<
最大子矩陣的值為:
"<
cout
<
return0;
}
5.體會。
有了思路,進行程式設計時就方便多了,即使有些方面不好實現,但是大家一起思考,還是能解決的。
返回乙個二維整數陣列中最大子陣列的和
作業要求 1 輸入乙個二維整形陣列,陣列裡有正數有負數。2 二維陣列中連續的乙個子矩陣組成乙個子陣列。3 求所有子陣列的和的最大值。設計思想 1 將二維陣列分解成一維陣列,使用一位陣列求最大子陣列之和的方法。2 列舉出每乙個子陣列值的大小,然後進行比較。3 最終求得二維陣列最大子陣列之和。出現的問題...
返回乙個二維整數陣列中最大子陣列的和
一 題目及要求 題目 返回乙個二維整數陣列中最大子陣列的和。要求 輸入乙個二維整形陣列,陣列裡有正數也有負數。二維陣列首尾相接,象個一條首尾相接帶子一樣。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。二 解題思路 因為是二維陣列首尾相連,所以將兩個同樣的陣...
返回乙個二維整數陣列中最大子陣列的和。
設計思路 通過之前一維環,進行拓展,成陣列。1 xiaosong du 2015 4 20 2 include 3 include 4 using namespace std 5 define m 3 6 define n 678 void main 9,b 2 n d 0,d1 0 11 int ...