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?
用hashmap count是第一想法。
不用extra memory的话,用XOR可以做。m^m = 0. 0^n = n。所以把数组所有元素XOR一遍就行了。
public class Solution {
public int singleNumber(int[] A) {
int result = A[0];
for(int i = 1; i < A.length; i++){
result ^= A[i];
}
return result;
}
}