一个二维数组中,如果一个元素是其所在行的最大值,是其所在列的最小值,则称这个元素为鞍点。求一个二维数组中的所有鞍点。
输入格式:
输入两个整数n,m,代表二维数组的行数和列数。
接着输入n行,每行m个整数。输出格式:
如果有鞍点,输出行下标和列下标,以空格分隔。
如果没有鞍点,则输出一个0。输入样例:
2 3 1 4 3 5 6 7
输出样例:
在这里给出相应的输出。例如:
0 1
import java.util.*;
public class Main{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
int[][] a = new int[n][m];
int cnt = 0;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
a[i][j] = scanner.nextInt();
for(int i=0;i<n;i++)
{
int max = a[i][0];
int p1 = i,p2 = 0;
for(int j=0;j<m;j++)
{
if(a[i][j]>max)
{
max = a[i][j];
p2 = j;
}
}
int min = max;
int is = 1;
for(int k=0;k<n;k++)
{
if(a[k][p2]<min)
{
is = 0;
break;
}
}
if(is==1)
{
System.out.printf("%d %d\n",p1,p2);
cnt++;
}
}
if(cnt==0) System.out.printf("0");
}
}