题目可以推广到数字出现偶数次里面找1个或两个出现 奇数次的数字
class Solution {
public int singleNumber(int[] nums) {
int eor = 0;
for(int num:nums){
eor^=num;
}
return eor;
}
}
class Solution {
public int[] singleNumber(int[] nums) {
int eor = 0;
for(int num:nums){
eor ^=num;
}
int rightone = eor&(~eor+1);
int res = 0;
for(int num:nums){
if((num&rightone)==0){
res^=num;
}
}
int[] ans = new int[]{res,eor^res};
return ans;
}
}
过程在这篇文章的第四小节异或里面说过