题目描述:
输入n个整数,输出出现次数大于等于数组长度一半的数。
输入描述:
每个测试输入包含n个空格分割的n个整数, n不超过100,其中有一个整数出现次数大于等于 n/2.
输出描述:
输出出现次数大于等于n/2的数。
示例1
输入
3 9 3 2 5 6 7 3 2 3 3 3
输出
3
分析:
遍历给定的数组array,用一个新的大小为9的数组arr,用数组的值来记录每个数出现次数。如0出现的次数对应arr[0]的值,1出现的次数对应arr[1]的值·······,依次类推。再次遍历数组,找到数组的值大于array一半的下标并输出。
public class Solution {
public int MoreThanHalfNum_Solution(int [] array) {
int[] arr = new int[9];
for(int j = 0;j<array.length;j++){
for(int i = 0;i<=9;i++){
if(array[j] == i){
arr[i]++;
}
}
}
int len = array.length/2;
int result = 0;
for(int i = 0;i<arr.length;i++){
if(arr[i] > len){
result = i;
break;
}
}
return result;
}
}