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?
class Solution { public: int singleNumber(int A[], int n) { if(n<=0) cerr<<"Invalid input" <<endl; if(n==1) return A[0]; int rst = A[0]; for(int i = 1; i < n; ++i) rst = rst ^ A[i]; return rst; } };
TIPS:
1. 两两异或
2.C/C++的位运算
&(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。
转载于:https://www.cnblogs.com/nnoth/p/3744021.html