矩阵鞍点
叫我暴力之王
暴力找出所有行最大和列最小,比较行最大和列最小有没有重合,有就是鞍点。
代码如下:
import java.util.Scanner;
public class twentynine {
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
int n=3;//矩阵行数
int[][] a=new int[n][n];
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
a[i][j]=reader.nextInt();
}
}
int[] hmax=new int[n];
int[] lmin=new int[n];
for(int i=0;i<n;i++) {
hmax[i]=a[i][0];
lmin[i]=a[0][i];
}
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
if(a[i][j]>hmax[i]) {
hmax[i]=a[i][j];
}
if(a[j][i]<lmin[i]) {
lmin[i]=a[j][i];
}
}
}
int t=0;
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
if(hmax[i]==lmin[j]) {
System.out.println("该矩阵鞍点为:"+hmax[i]);
}
else {
t++;
}
}
}
if(t==n*n) {
System.out.println("该矩阵没有鞍点");
}
}
}
/*
1 2 6
9 5 4
8 7 5
*/