太烧脑,不是很理解啊点击打开链接。
数组中只有一个数是出现一次,其他都是两次,这题就是简单的直接异或就可以了,因为相同的数异或为零。如果数组中有两个数只出现一次,其他都是两次,先异或一次,得到目标两个数的异或值,求出最右位为一的数(假设第i),这位数的两个目标数必然一个是1,一个是0,把数组分为两组,一组第i位为0一组第i位位1的两组,问题就转化为了之前的问题了。
太烧脑,不是很理解啊点击打开链接。
数组中只有一个数是出现一次,其他都是两次,这题就是简单的直接异或就可以了,因为相同的数异或为零。如果数组中有两个数只出现一次,其他都是两次,先异或一次,得到目标两个数的异或值,求出最右位为一的数(假设第i),这位数的两个目标数必然一个是1,一个是0,把数组分为两组,一组第i位为0一组第i位位1的两组,问题就转化为了之前的问题了。