楼逸杨
(楼逸杨)
1
怎么写啊
找鞍点
题目ID:9673选做题100分
最新提交:0 分
历史最高:0 分
时间限制: 200ms
空间限制: 65535kB
题目描述
时间:0.2s 空间:64M
【题目描述】
一个矩阵的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。
请你找出给定的n阶方阵的鞍点。
【输入描述】
第一行给出一个正整数n(1≤n≤50)。
随后n行,每行给出n个整数,其间以空格分隔。
【输出描述】
两个整数,表示鞍点所在的行和列。
如果鞍点不存在,则输出"NONE"。
题目保证给出的矩阵至多存在一个鞍点。
【样例输入】
4
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9
【样例输出】
3 2
约定:
提示:
2 个赞
俞天行
(Star lit Journey「y.t.x」)
2
水题,都不用DFS的
直接双重循环遍历每行、每列,寻找鞍点( 值在该行上最大、在该列上最小)
核心代码
for (int o = 1; o <= n; o++) {
for (int i = 1; i <= n; i++) {
maxn = INT_MIN;
for (int z = 1; z <= n; z++) {
if(a[o][z] > maxn) {
maxn = a[o][z];
}
}
minn = INT_MAX;
for (int h = 1; h <= n; h++) {
if(a[h][i] < minn) {
minn = a[h][i];
}
}
if(a[o][i] == maxn && a[o][i] == minn) {
cout << o << ' ' << i ;
return 0;
}
}
}
cout << "NONE" ;
解决方案