异或思想,一个数与自己异或为0,一个数与0异或为自己
由于其它数字两两相同,所以所有数异或则得到这两个不同数的异或结果。取这个结果的第一个1作为标志位
这个标志的1,必须是:这两个数在该位一个为0,一个为1,因为是异或操作,结果为1必然在这里两个数字一个为0一个为1
这里的结果必须是会产生的,也就是说肯定存在异或结果为1,不然这两个数字就是相等的
这样可以将数组分为两组,一组在该标志位为1,一组在该标志位为0,这两个不同数字分别在这两组内
将两组内的数分别异或,得到两个结果则为这两个不同的数