我們在前面分析了一維陣列之和的最大值問題,那麼如果是二維陣列又該如何分析呢?
最直接的方法,當然就是列舉每乙個矩形區域,然後再求這個矩形區域中元素的和。
完整**如下:
1程式執行結果如下:package
chapter2shuzizhimei.maxsumsubarraytwodimensional;
2/**
3* 求陣列的子陣列之和的最大值(二維)
4* 【解法一】5*
@author
dell6*
7*/8public
class
maxsumsubarray2d
13/**
14* 求陣列的子陣列之和的最大值(二維)
15*
@param
a 二維陣列
16*
@param
n 行17
* @param
m 列18
* @return
最大和19
*/20
public
static
double maxsum(double a,int n, int
m)
46 maximum =max(maximum,sum); 47}
48return
maximum;49}
5051
public
static
void
main(string args) ,};
53 system.out.println("求陣列的子陣列之和的最大值(二維)為:"+maxsum(a,2,2));
5455}56
57 }
求陣列的子陣列之和的最大值(二維)為:5.0
第2章 數字之魅 子陣列的最大乘積
給定乙個長度為n的整數陣列,只允許用乘法,不能用除法,計算任意 n 1 個數的組合乘積中最大的一組,並寫出演算法的時間複雜度。我們把所有可能的 n 1 個數的組合找出來,分別計算它們的乘積,並比較大小。由於總共有n個 n 1 個數的組合,總的時間複雜度為o n2 但顯然這不是最好的解法。具體 如下 ...
第2章 數字之魅 數字中的技巧2 2
問題1 求 n!末尾有多少個0。問題2 n!中二進位制表示中最低位1的位置。首先對於問題1 對於n!的末尾有多少個0這個問題。要追溯到算術基本定理 任何乙個大於1的自然數 n,都可以唯一分解成有限個質數的乘積 n p 1 a1 p 2 a2 p n an 這裡p 1質數 其諸方冪 ai 是正整數。m...
第2章 數字之魅 數字中的技巧2 1
法1 整型數觀念。二進位制中1在數中的體現,也就是當乙個數是奇數時最末位就是1。那麼我們可以將乙個數判斷是否是奇數。如果是就統計加1。並且 2 失去這一位。int count count 0 void count int num num 2 法1法2 從二進位制的角度。利用位運算。從二進位制的角度對...