`
lknh
  • 浏览: 25376 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

求二维数组的最大字段和

阅读更多
这是编程之美中的一道题目,这里我用java来实现
/**
	 * 
	 * @param a
	 * @param n 数组的行数
	 * @param m 数组的列数
	 */
	private static void maxSum(int a[][],int n,int m){
		int maxSum = 0;
		for(int i=0;i<n;i++){
			
			for(int j=0;j<=i;j++){
				int thisSum = 0;
				for(int col =0;col<m;col++){
				thisSum+=colSum(a,j,i,col);
				if(thisSum>maxSum)maxSum = thisSum;
				if(thisSum<0)thisSum=0;
				}
			}
		}
		System.out.println(maxSum);
	}
	/**
	 * 
	 * @param arr
	 * @param low
	 * @param high
	 * @param col
	 * @return第col列中从low行到high行的和
	 */
	private static int colSum(int arr[][],int low,int high,int col){
		int sum=0;
		for(int i=low;i<=high;i++){
			sum+=arr[i][col];
		}
		return sum;
	}
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics