鞍点计算
题目链接:https://acm.sdut.edu.cn/onlinejudge3/contests/4006/problems/C
::一个二维数组并不一定存在鞍点
::保证不会出现两个鞍点的情况
放AC代码
1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m,x,y,f,flag; 4 int a[15][15]; 5 int row[15],column[15];//存储每行最大和每列最小 6 7 int main() 8 { 9 cin>>m>>n; 10 for(int i=0; i<m; i++) 11 for(int j=0; j<n; j++) 12 cin>>a[i][j]; 13 for(int i=0; i<m; i++) 14 {//横向找最大数并存储 15 int rmax=0; 16 for(int j=0; j<n; j++) 17 { 18 if(a[i][j]>rmax) 19 { 20 rmax=a[i][j]; 21 row[i]=rmax; 22 } 23 } 24 } 25 for(int j=0; j<n; j++) 26 {//纵向找最小数并存储 27 int cmin=100000; 28 for(int i=0; i<m; i++) 29 { 30 if(a[i][j]<cmin) 31 { 32 cmin=a[i][j]; 33 column[j]=cmin; 34 } 35 } 36 } 37 for(int i=0; i<m; i++) 38 for(int j=0; j<n; j++) 39 if(row[i]==column[j]) 40 { 41 x=i; y=j; f=row[i]; 42 flag++; 43 } 44 if(flag==0) 45 cout<<"None"; 46 else 47 printf("Array[%d][%d]=%d",x,y,f); 48 return 0; 49 }