YTUOJ——求二維陣列中的鞍點【陣列】
阿新 • • 發佈:2018-11-28
題目描述
如果矩陣A中存在這樣的一個元素A[i,j]滿足條件:A[i,j]是第i行中值最小的元素,且又是第j列中值最大的元素,則稱之為該矩陣的一個馬鞍點。請程式設計計算出m*n的矩陣A的所有馬鞍點。
輸入
輸入m,n
然後輸入陣列中的每個元素
輸出
輸出m*n的矩陣A的所有馬鞍點
樣例輸入
3 3
1 7 3
5 4 6
17 18 9
樣例輸出
9
答案
#include "iostream" using namespace std; int main() { int m,n,i,j,a[10][10]; int hmin[10],lmax[10]; cin>>m>>n; for(i=0;i<m;i++){ for(j=0;j<n;j++) cin>>a[i][j]; } for(i=0;i<m;i++){ hmin[i] = a[i][0]; for(j=0;j<n;j++){ if(a[i][j] < hmin[i]) hmin[i] = a[i][j]; } } for(j=0;j<n;j++){ lmax[j] = a[0][j]; for(i=0;i<m;i++){ if(a[i][j] > lmax[j]) lmax[j] = a[i][j]; } } for(i=0;i<m;i++){ if(hmin[i] == lmax[i]) cout<<hmin[i]; } return 0; }