题目如下:
Given an array of integers, every element appears twice except for one. Find that single one.
考虑怎么能把一个数组中两个相同的数字“消”掉呢?
N^N=0
也就是异或。而0^N=N,那么将数组中的数字全部异或最后剩下的数就是答案,算法如下:
public class Solution {
public int singleNumber(int[] nums) {
int res = 0;
for(int i=0;i<nums.length;i++){
res ^= nums[i];
}
return res;
}
}