主元素问题(众数)

在一个集合中,如果一个数出现的频率超过50%,那么称这个数为该集合的主元素。

规则技巧:去除集合中两个不相等的数,其主元素出现的频率仍然大于50%。

使用两个变量,count=0和size=集合大小,假设第一个元素为主元素,依次和后面的数对比,相同count就+1,不相同count就-1,当count=-1时就代表前面的所有值都刚好是成对不相同的值,则可以抛弃掉。则设count=0,继续假设下一个元素m为主元素,继续跟后面元素比较。一直到count>=(size-m)/2,假设的主元素为真主元素。


首页 我的博客
粤ICP备17103704号