Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
一刷
题解:
异或满足交换律,且A ^ A = 0
A ^ B ^ C = B ^ A ^ C
那么一路异或下来,可以找到single number
public class Solution {
public int singleNumber(int[] nums) {
int res = 0;
for(int num : nums){
res ^= num;
}
return res;
}
}