给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
假设数据位宽为m
构建如图所示矩阵,每一行为数组中的一个数,从左到右依次为数据的高bit到底bit
计算时,将每一列的数相加,得到的值如果大于n/2,则多数元素的该bit为1,否则为0
例如,当m=4,n=5时,结果如下图所示
数组中共有5个元素,值分别为3、7、3、3、7
每一列的和的值为2、2、5、5
n/2=2
当和为2时,不满足>2,所以该bit为0
当和为2时,满足>2,所以该bit为1
多数元素的值为上图中黄色部分所示,为3