剑指Offer第二十八题:数组中出现次数超过一半的数
如果这个数存在,那么将数组排序后,中位数必然是这个数
所以只需要将数组排序,取中位数,再检查中位数的个数是否超过半数
import java.util.*;
public class Solution {
public int MoreThanHalfNum_Solution(int [] array) {
if(array == null || array.length == 0){
return 0;
}
Arrays.sort(array);
int temp = array[array.length/2];
int count = 0;
for(int i = 0; i<array.length; i++){
if(array[i] == temp){
count++;
}
}
return (count>(array.length/2))?temp:0;
}
}