1489 数据结构:矩阵鞍点

即使AC,但此算法仍有不足之处,不能正确处理行最小、列最大+相等的矩阵情况。

2 2
   2 3

应为A[1][1]、A[2][1]

 1 #include <iostream>
 2 #define MAX_SIZE 100+1
 3 using namespace std;  4 int array[MAX_SIZE][MAX_SIZE];  5 void creatMatrix()  6 {  7 int m,n,iMax,jMax,count=0;//当前列中最大元素的行下标、列下标  8 scanf("%d%d",&m,&n);  9 int minRow[m],maxCol[n]; 10 for (int i = 1; i <= m; ++i) 11  { 12 scanf("%d",&array[i][1]); 13 minRow[i]=array[i][1]; 14 for (int j = 2; j <= n; ++j) 15  { 16 scanf("%d",&array[i][j]); 17 if(array[i][j]<minRow[i]) minRow[i]=array[i][j]; 18  } 19  } 20 for (int j = 1; j <= n; ++j)//遍历每一列 21  { 22 maxCol[j]=array[1][j]; iMax=1,jMax=j; 23 for (int i = 1; i <= m; ++i) 24 if(maxCol[j]<array[i][j]) 25  { 26 maxCol[i]=array[i][j]; 27 iMax=i; jMax=j; 28  } 29 if(array[iMax][jMax]==minRow[iMax]) 30  { 31 count==0 ? printf("A[%d][%d]",iMax,jMax ):printf(" A[%d][%d]",iMax,jMax ); 32 count++; 33  } 34  } 35 if(count==0) printf("NO."); 36 printf("\n"); 37 } 38 int main(int argc, char const *argv[]) 39 { 40 #ifndef _OJ_ //ONLINE_JUDGE 41 freopen("input.txt", "r", stdin); 42 #endif 43 int num; 44 scanf("%d",&num); 45 while(num--) 46  { 47  creatMatrix(); 48 if(num>0) printf("\n"); 49  } 50 return 0; 51 }

 

转载于:https://www.cnblogs.com/swanGooseMan/p/4290905.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值