import java.util.*;
public class Test4 {
/**
* 找出一个二位数组中的鞍点,即该位置上的元素在该行上最大,
* 在该列上最小,也可能没有鞍点。
*/
public static void main(String[] args) {
int[][] arr={{18,20,3},{21,100,8}};
int rowmax=arr[0][0];
List<Integer> andian=new ArrayList<Integer>();
int col=0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
if(arr[i][j]>rowmax){ //得到行中最大元素
rowmax=arr[i][j];
col=j;
}
}
if(isColmin(arr,rowmax,col)){ //判断是否是列中最小
andian.add(rowmax);
}
}
//输出
for (int i = 0; i < andian.size(); i++) {
System.out.println(andian.get(i));
}
}
public static boolean isColmin(int[][] arr,int rowmax,int col){
int colmin=rowmax;
boolean flag=true;
for (int i = 0; i < arr.length; i++) {
if(arr[i][col]<colmin){
flag=false;
break;
}
}
return flag;
}
}