简单的写法: public static int MoreThanNum(int[] arr){ if(arr == null || arr.length == 0){ return 0; } int halfNum = arr.length/2; int numCount; for (int i = 0; i <= /*arr.length -1*/halfNum + 1 ; i++) {//如果在这里加个,被判断过的数字不会重复就完美点 //例如:{3,2,3,2,2,2,2}这个第二3会因为第一个3判断了而被跳过更高效,如果你实现了麻烦告诉我 numCount = 1; for (int j = i+1; j < arr.length; j++) { if(arr[i] == arr[j] ){ numCount ++; } } if(numCount > halfNum){ return arr[i]; } } return 0; }
另外有个map来先将不同的数分组,再根据长度判断的实现方法。