找出数组中出现次数超过一半的数(时间复杂度O(n))

题目:如何在O(n)的时间复杂度内找出数组中出现次数超过了一半的数。 因为本题对时间复杂度有要求,因此可采用如下2种方法。ios 方法一:每次取出两个不一样的数,剩下的数字中重复出现的数字确定比其余数字多,将规模缩小化。若是每次删除两个不一样的数(无论包括不包括最高频数),那么在剩余的数字里,原最高频数出现的频率同样超过了50%,不断重复这个过程,最后剩下的将全是一样的数字,即最高频数。此算法避免
相关文章
相关标签/搜索