求一个矩阵中最大的二维矩阵(元素和最大).
2012-09-01 19:40
369 查看
1 2 0 3 4
2 3 4 5 1
1 1 5 3 0
中最大的是: 4 5 5 3 要求:(1)写出算法;(2)分析时间复杂度;(3)用C 写出关键代码
#include <iostream> using namespace std; void findx(int a[][5] , int m ,int n) { int i ,j ,tmp ,count[100], k,x,y; k = 0; for(i = 0 ;i<m-1 ; i++) { for(j = 0 ; j<n-1 ;j++) { count[k] = a[i][j]+a[i][j+1]+a[i+1][j]+a[i+1][j+1]; k++; } } for(i = 0 ;i<k-1 ; i++) { if(count[i]>count[i+1]) { tmp = count[i]; count[i] = count[i+1]; count[i+1] = tmp; } } for(i = 0 ; i<m-1 ;i++) { for(j = 0 ;j<n-1 ;j++) { if((a[i][j]+a[i][j+1]+a[i+1][j]+a[i+1][j+1]) == count[k-1]) { x = i; y = j; } } } printf("最大的二维矩阵和:%d\n",count[k-1]); cout<<a[x][y] <<a[x][y+1]<<endl; cout<<a[x+1][y] <<a[x+1][y+1]<<endl; } void main() { int a[3][5]={{1,2,0,3,4},{2,3,4,5,1},{1,2,5,3,0}}; findx(a , 3 , 5); }
时间复杂度为 o(m*n)
还有就是二维数组作为参数:必须制定二维数组第二维的维数即就是列的数目。
相关文章推荐
- 【编程题目】求一个矩阵中最大的二维矩阵(元素和最大)
- 微软算法100道题------求一个矩阵中最大的二维矩阵(元素和最大)
- 【每日面试题】求一个矩阵中最大的二维矩阵(元素和最大)
- 求一个矩阵中最大的二维矩阵(元素和最大)
- 求一个矩阵中最大的二维矩阵(元素和最大)
- IT公司100题-35- 求一个矩阵中最大的二维矩阵(元素和最大)
- 每天学习一算法系列(32)(求一个矩阵中最大的二维矩阵(元素和最大))
- 100题求一个矩阵中最大的二维矩阵(元素和最大)
- 给定一个由整数组成二维矩阵(r*c),现在需要找出它的一个子矩阵,使得这个子矩阵内的所有元素之和最大,并把这个子矩阵称为最大子矩阵。
- 29. 微软面试题:求一个矩阵中最大的二维矩阵(元素和最大)
- 求一个矩阵中最大的矩阵(元素和最大)(二维情况)
- 求一个矩阵中最大的二维矩阵(元素和最大)
- 求一个矩阵中最大的二维矩阵(元素和最大)
- 35 求一个矩阵中最大的二维矩阵(元素和最大)
- 求一个矩阵中最大的二维矩阵(元素和最大)
- 求一个矩阵中最大的二维矩阵(元素和最大)
- 【100题】三十五 求一个矩阵中最大的二维矩阵(元素和最大)
- 求一个矩阵中最大的二维矩阵(元素和最大)
- 一个矩阵中最大的二维矩阵(元素和最大)
- 【100题】三十五 求一个矩阵中最大的二维矩阵(元素和最大)