您的位置:首页 > 其它

求数组中出现次数超过数组长度一半的元素

2014-03-28 19:48 274 查看
思想比较简单:

1、选定一个元素,作为出现次数超过一半的元素a,计次数i为1

2、依次与后续元素比较,若存在相等元素则i+1,反之i-1

3、若i==0,令当前元素为a,重复步骤1

private static int halfNumber(int[] array) {
if (array == null || array.length == 0) {
return 0;
}
int element = 0, times = 0;
for (int i = 0; i < array.length; i++) {
if (times == 0) {
times++;
element = array[i];
} else if (element == array[i]) {
times++;
} else {
times--;
}
}
return element;
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐