6.3:一个数组中有两种数出现了奇数次,其它数出现了偶数次,怎么找到并打印这两种数
作者:互联网
6.3:一个数组中有两种数出现了奇数次,其它数出现了偶数次,怎么找到并打印这两种数
两种数出现奇数次,其它偶数次
1、用eor = 0去逐个异或,最后一定是 eor = a^b, a和b是这个两个出现奇数次的数。偶数次异或为0。
2、a != b, eor != 0; eor的binary一定有1,利用6.2,提取最右侧的那个1的方法。
说明a和b的二进制数在这个位置一定是不一样的。
数组里的所有数分为2类
第i位置是1的数
第i位置是0的数
3、在定义eor`去异或这个数组,只挑选第i为是1的数去异或,是0的数不碰。
eor`会把a拽出来
4、另一个 = eor^eor`
标签:并打印,两种,偶数,eor,异或,数次,6.3,数组 来源: https://www.cnblogs.com/yzmarcus/p/16218235.html