分享一道Java题解,算法是双循环遍历每个仓库,调用方法,判断是否有上级仓库。
import java.util.Scanner;
public class Main {
static int m;
static int n;
static int[][] a;
public static boolean check(int i,int j){ //判断第j个仓库是否为第i个仓库的上级
for(int k=0;k<m;k++){
if(a[i][k]>=a[j][k]){
return false;
}
}
return true;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m = sc.nextInt();
a = new int[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
a[i][j] = sc.nextInt();//存储输入数据
}
}
int pre; //上级仓库,1~n;
//n,m
for(int k=0;k<n;k++){
pre =0; //默认为0,没有上级
for(int q=0;q<n;q++){
if(k!=q){ //不同仓库之间比较
if(check(k,q)){
pre=q+1; //1~n
break;
}
}
}
System.out.println(pre);
}
}
}
提交结果如图: