马鞍数查找算法:C++代码实现及示例
马鞍数查找算法:C++代码实现及示例
1. 算法定义
在矩阵中,如果一个数在它所在的行上是最小的,而在它所在的列上是最大的,则称这个数为“马鞍数”。
2. 算法思路
为了找到矩阵中的马鞍数,我们可以采用以下步骤:
- 遍历矩阵中的每个元素。
- 检查当前元素是否为其所在行的最小值。
- 如果是,则检查当前元素是否为其所在列的最大值。
- 如果是,则该元素为一个马鞍数。
3. C++代码实现
#include <iostream>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
int matrix[10][10];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> matrix[i][j];
}
}
bool found = false;
for (int i = 0; i < n; i++) {
bool isRowMin = true;
for (int j = 0; j < m; j++) {
if (matrix[i][j] > matrix[i][j]) {
isRowMin = false;
break;
}
}
if (isRowMin) {
bool isColMax = true;
for (int k = 0; k < n; k++) {
if (matrix[i][j] < matrix[k][j]) {
isColMax = false;
break;
}
}
if (isColMax) {
found = true;
cout << i + 1 << ' ' << j + 1 << ' ' << matrix[i][j] << endl;
}
}
}
if (!found) {
cout << 'not exit' << endl;
}
return 0;
}
4. 示例
样例1:
输入: 5 5 5 6 7 8 9 4 5 6 7 8 3 4 5 2 1 2 3 4 9 0 1 2 5 4 8
输出: 1 1 1
样例2:
输入: 4 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
输出: not exit
5. 总结
本文介绍了马鞍数查找算法的原理、代码实现和示例。通过学习本文,读者可以更好地理解马鞍数的定义、查找方法以及实际应用场景。
原文地址: https://www.cveoy.top/t/topic/p5nN 著作权归作者所有。请勿转载和采集!