行业知识
【矩阵】计算鞍点
2026-11-02 11:00:14
来源:互联网转载
每日一道算法题之计算鞍点
- 一、题目描述
- 二、思路
- 三、C++代���
一、题目描述
题目来源:洛谷
()给定一个 5×5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。
C++程序要求输入输出格式如下:
()输入格式
输入包含一个 5 行 5 列的矩阵。
输出格式
如果存在鞍点,输出鞍点所在的行、列及其值,如果不存在,输出 not found。
示例如下:
输入:11 3 5 6 912 4 7 8 1010 5 6 9 118 6 4 7 215 10 11 20 25输出:4 1 8
二、思路
我的思路是采用暴力解,用三个数组,第一个二维数组存储输入的矩阵,第二数组存储每一行最大的数,第三个数组存储每一列最小的数,然后再去对比第三个数组里的值是否出现在第二个数组中,出现则符合题意条件,进行输出,否则输出not found。
三、C++代码
#includeusing namespace std;//计算鞍点 int main(){ int a[5][5]; for(int i=0;ifor(int j=0;jcina[i][j];} } int max=INT_MIN,min=INT_MAX; int flag=0; int b[5]; int c[5]; for(int i=0;ifor(int j=0;jif(a[i][j]max){max=a[i][j];}}b[i]=max;max=0; } for(int i=0;ifor(int j=0;jif(a[j][i]min=a[j][i];}}c[i]=min;min=300; } for(int i=0;ifor(int j=0;jif(c[j]==b[i]){coutcout