题目描述 求一个n行m列数阵中的马鞍数输出它的位置。所谓马鞍数是指在行上最小而在列上最大的数。如下 n=5 m=5 56789 45678 34 52 1 23490 1 2 548 则1行1列上的数就是马鞍数。输入: 共n+1行第一行:nmnm10 第2到n+1行:每行m个
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
vector<vector<int>> matrix(n, vector<int>(m));
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> matrix[i][j];
}
}
vector<int> row_min(n, INT_MAX);
vector<int> col_max(m, INT_MIN);
// 找出每一行的最小值和每一列的最大值
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
row_min[i] = min(row_min[i], matrix[i][j]);
col_max[j] = max(col_max[j], matrix[i][j]);
}
}
bool exist = false;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (matrix[i][j] == row_min[i] && matrix[i][j] == col_max[j]) {
cout << i+1 << " " << j+1 << " " << matrix[i][j] << endl;
exist = true;
}
}
}
if (!exist) {
cout << "not exit" << endl;
}
return 0;
}
``
原文地址: https://www.cveoy.top/t/topic/inrt 著作权归作者所有。请勿转载和采集!