一尘不染

查找数组中最常见的条目

algorithm

为您提供了一个长度最大为2
32的32位无符号整数数组,其特性是,对于某些32位无符号整数N,该数组中一半以上的条目等于N。查找N并查看每个数字在阵列中只能使用一次,并且最多使用2
kB的内存。

您的解决方案必须是确定性的,并保证找到N。


阅读 172

收藏
2020-07-28

共1个答案

一尘不染

每个位保留一个整数,并为数组中的每个整数适当增加此集合。

最后,某些位的计数将大于数组长度的一半-这些位确定N。当然,该计数将大于N发生的次数,但这无关紧要。重要的是,不属于N的任何位 都不能
出现超过一半的时间(因为N具有超过一半的条目),并且属于N的任何位都 必须 出现超过一半的时间(因为它将发生)每次发生N,以及其他任何情况)。

(目前尚无代码-即将失去网络访问权限。希望以上内容足够清楚。)

2020-07-28