您的位置:首页 > 其它

整数数组,一个数字出现了半数以上次,找出这个数字

2014-12-16 16:46 295 查看
遍历,添加一个length/2+1的数组,记录每个数组出现的次数,然后遍历该频率数组,最大的数字就是
出现了半数以上的话,为什么不两两约去,剩下的那个不就是结果了嘛。当然还要考虑一件事,要是1,1,2,1,哪结果不就是2了嘛?所以当前后两个数字一样的时候就不能直接约去了,复杂度o(n)

看代码:

public class Test {
int fun(){
int array[]={4,1,4,1,4,1,4};
int result=array[0],count=0;
for(int i=0;i<array.length;i++){
if(count==0){
result=array[i];
count=1;
}else if(array[i]==result){
count++;
}else if(result!=array[i]){
count--;
}
}
return result;
}
static public void main(String []args){
fun();
}
}

没有多高深的知识点,但就是为这种泛光的思想惊叹~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐