给出2*n + 2个的数字,除其中两个数字之外其他每个数字均出现两次,找到这两个数字。
样例
给出 [1,2,2,3,4,4,5,3],返回 1和5
class Solution {
public:
vector<int> singleNumberIII(vector<int> &A) {
int n=A.size();
int diff=0;
for(int i=0;i<n;i++) diff^=A[i];
diff&=-diff;
vector<int>res(2,0);
for(int i=0;i<n;i++){
if(A[i]&diff) res[0]^=A[i];
else res[1]^=A[i];
}
return res;
}
};