/** * @author:(LiberHome) * @date:Created in 2019/3/1 19:16 * @description: * @version:$ */ /*请在5*5的矩阵中找出频度最高的元素*/ public class page0801 { public static void main(String[] args) { int [][] arrs={{3,2,5,4,1},{10,9,3,4,2},{8,7,6,7,3},{3,3,4,1,2},{4,5,3,1,3}}; int result=findMost(arrs); System.out.println("the answer is :"+result); } /*二度思维错误,并且最近一次专硕初试考过,值得记录下来*/ /*然后,遍历整个二维数组,将数组值作为一维数组的下标值的元素++*/ /*最后遍历一维数组,输出其最大值的下标*/ private static int findMost(int[][] arr) { /*首先,初始化一个长度为11的一维数组值全部为0,(因为题目给出的数字仅从0~10一共11个数字)*/ int[] temp =new int[11]; for (int i = 0; i < 11; i++) { temp[i]=0; } /*然后,遍历整个二维数组,将数组值作为一维数组的下标值的元素++*/ for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { temp[arr[i][j]]++; } } /*最后遍历一维数组,输出其最大值的下标*/ int max=0; int flag=-1; for (int i = 0; i < temp.length; i++) { if (max<temp[i]){ max=temp[i]; flag=i; } } System.out.println("max times is:"+max); return flag; } }