对于摩尔投票法可以推广到⌊k / n⌋的情况,也就是给定一个大小为 n 的整数数组,找出其中所有出现超过⌊k / n⌋次的元素,对于k = 2的情况我们可以看成有一个仓库r1, 仓库r1放着数量为c1的元素,当我们遍历数组中的所有元素的时候发现当前遍历的元素与r1不等的时候那么c1减1,最后遍历一下数组中的所有元素统计所有与r1相等的数目count,判断count是否大于1 / 2如果大于1 / 2说明当前的元素r1的数目超过数组长度的1 / 2的,对于⌊k / n⌋的情况我们是可以定义k - 1个仓库,并且每个仓库对应的元素数目为c1, c2...ck-1,当某个仓库为空的时候那么我们可以将当前的元素放到这个仓库中,并且当前仓库对应的元素值加1,当遍历数组的时候发现与所有仓库中的元素不相等的时候那么就需要将所有仓库对应的元素减1,仓库为空的时候那么可以将当前遍历的元素放入到仓库中,并且仓库对应的元素数量加1即可,最后统计一下每个仓库中的元素在数组中出现的次数,如果严格大于k / n说明当前的仓库元素是满足要求的。