首先要知道n长度中出现次数超过3/n的元素不会超过两个,所以设置两个存储结果的变量,再对这两个指针分别设置两个int变量
然后往数组后面依次走,如果有一样的则在那个元素的int变量+1,如果都不存在则两个int变量都-1,当哪个int变量为0时,则将数组当前元素放入变量中
循环到最后剩余的就是两个结果
本文介绍了一种在数组中寻找出现次数超过总数三分之一的众数的算法。通过使用两个变量来存储可能的众数,并利用计数器进行跟踪,该算法能够在一次遍历内找出所有符合条件的众数。
首先要知道n长度中出现次数超过3/n的元素不会超过两个,所以设置两个存储结果的变量,再对这两个指针分别设置两个int变量
然后往数组后面依次走,如果有一样的则在那个元素的int变量+1,如果都不存在则两个int变量都-1,当哪个int变量为0时,则将数组当前元素放入变量中
循环到最后剩余的就是两个结果
1216

被折叠的 条评论
为什么被折叠?