位运算解题1:找数组中唯一成对的那个数
首先要知道:A^A=0、A^0=0、A^A^B^C^C=0
[1,2,3,……k,k……1000],如果将这1001个数互相异或,1^2^……^k^k^……1000,那么重复的数k将被消掉,找不出重复的数,取不重复数组[1^2^……^1000]和[1^2^……^k^k^……1000]异或,那么所有的数将和自己异或被消掉,除了k(三个k异或后等于k)
步骤一:创建数组(以11个数为例)
注:最后交换部分可以不写
步骤二:把两部分异或起来
方法二:开辟辅助空间,创建一个相同大小的数组,便利第一个数组,将第一个数组的值作为第二个数组的下标,第二个数组加一,最后在第二个数组中找到值为2的下标,改下标则为重复数字