Chinaunix首页 | 论坛 | 博客
  • 博客访问: 352321
  • 博文数量: 159
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 182
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-02 10:42
文章分类

全部博文(159)

文章存档

2015年(18)

2014年(132)

2013年(9)

分类: C/C++

2013-12-18 22:43:50


点击(此处)折叠或打开

  1. // 在一个矩阵中,找到和最大的【2*2】的子矩阵
  2.  
  3. #include <iostream>
  4.    
  5. using namespace std;
  6.   
  7. const int N = 4;

  8. int main()
  9. {
  10.     int index[2] = { 0 };
  11.     int max = 0;
  12.   
  13.     // 待分析数据
  14.     int a[N][N] = { { 4, 5, 1, 6 }, { 1, 7, 10, 1 }, { 1, 5, 2, 2 }, { 12, 0, 3, 15 } };
  15.   
  16.     // 遍历所有二维数据组
  17.     for (int i = 0; i < N - 1; i++)
  18.     {
  19.         for (int j = 0; j<N - 1; j++)
  20.         {
  21.             // 对二维数组求和,如果大于原来的max,则取代之
  22.             if (a[i][j] + a[i + 1][j] + a[i][j + 1] + a[i + 1][j + 1]>max)
  23.             {
  24.                 // 取代max,并保存坐标
  25.                 max = a[i][j] + a[i + 1][j] + a[i][j + 1] + a[i + 1][j + 1];
  26.                 index[0] = i;
  27.                 index[1] = j;
  28.             }
  29.         }
  30.     }
  31.   
  32.     // 输出信息
  33.     cout << "max " << max << endl;
  34.     cout << a[index[0]][index[1]] << " " << a[index[0] + 1][index[1]] << " " << a[index[0]][index[1] + 1] << " " << a[index[0] + 1][index[1] + 1];
  35.   
  36.   
  37.     system("pause");
  38.     return 0;
  39. }

阅读(1123) | 评论(0) | 转发(0) |
0

上一篇:镜像二叉树

下一篇:数组差

给主人留下些什么吧!~~