找出一个二维数组的鞍点。鞍点指某元素的值在该行上最大,在列上最小。也可能没有鞍点。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int m, n, i, j;
int f = 0;
m = s.nextInt();
n = s.nextInt();
int[][] a = new int[m][n];
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
a[i][j] = s.nextInt();
}
}
int max, p = 0, q = 0, min;
for(i=0;i<m;i++){
max=a[i][0];
for(j=0;j<n;j++){
if(max<a[i][j]){
max=a[i][j];
}
p=i;
q=j;
}
min=a[p][q];
for(i=0;i<m;i++){
if(min>a[i][q]){
break;
}
}
if(i==m){
System.out.print("鞍点是"+a[p][q]);
f=1;
}
}
if(f==0){
System.out.print("该二维数组无鞍点");
}
}
}