vivo2017实习生编程题

来源:互联网 发布:点卡商城源码 编辑:程序博客网 时间:2024/06/06 00:33

题目描述:输入一个3行4列的,返回一个值,这个值为一行中的最大值且为当前列的最小值,若存在这样的值则返回,不存在则返回-1。



package java_problem;import java.util.Scanner;public class FindArrayNumber {//判断某个数是否为某个数组的某列的最小值public static boolean isColMin(int[][] arr,int n,int m){int colMin=arr[0][0];int[] colArr=new int[4];//List<Integer> al=new ArrayList<Integer>();//求出每一列最小值放入cowMax数组中for(int j=0;j<4;j++){colMin=arr[0][j];for(int i=0;i<3;i++){if(arr[i][j]<colMin){colMin=arr[i][j];}}colArr[j]=colMin;//al.add(colMin);}return n==colArr[m];}public static int yqtFind(int[][] arr){int rowMax=arr[0][0];int[] rowArr=new int[3];//求出每一行最大值放入rowMax数组中for(int i=0;i<3;i++){rowMax=arr[i][0];int m=0;for(int j=0;j<4;j++){if(arr[i][j]>rowMax){rowMax=arr[i][j];m=j;}}if(isColMin(arr,arr[i][m],m)){return arr[i][m];}rowArr[i]=rowMax;}//System.out.println(Arrays.toString(colArr));//System.out.println(Arrays.toString(rowArr));return -1;}public static void main(String[] args) {Scanner sc=new Scanner(System.in);int[][] arr=new int[3][4];for(int i=0;i<3;i++){for(int j=0;j<4;j++){arr[i][j]=sc.nextInt();}}//System.out.println(findNumber(arr));System.out.println(yqtFind(arr));}}



原创粉丝点击