题目描述
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。
这题思路挺简单的,用了双for直接解决
package 牛客;
import java.lang.reflect.Array;
import java.util.Arrays;
public class 数组中出现次数超过一半的数字 {
public static int MoreThanHalfNum_Solution(int[] array) {
if (array == null || array.length == 0) {
return 0;
}
Arrays.sort(array);
int result=0;
for(int i=0;i<array.length;i++) {
result=array[i];
int count=0;
for (int j=i;j<array.length;j++) {
if (array[j] == result) {
count++;
}else {
break;
}
}
if (count*2<=array.length){
result=0;
continue;
}else{
return result;
}
}
return result;
}
public static void main(String[] args) {
int []a={1,2,3,2,4,2,5,2,3};
System.out.println(MoreThanHalfNum_Solution(a));
}
}