题目:
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。
例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数
组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。
代码实现:
/*
解题思路:
1.先给数组进行排序。
2.因为要找出在数组中出现次数超过数组长度一半的数,那么这个数一定在中间。
3.取得中间数,然后统计次数
*/
import java.util.Arrays;
public class Solution {
public int MoreThanHalfNum_Solution(int [] array) {
int len=array.length;
if(len<1)
{
return 0;
}
int count=0;
//进行排序
Arrays.sort(array);
//取得中间数
int num=array[len/2];
for(int i=0;i<len;i++)
{
if(num==array[i])
{
count++;
}
}
//看是否存在
if(count<=(len/2))
{
num=0;
}
return num;
}
}