Current streak:
0 days
Longest streak:
8 days
Less
More
vector<int> findMissingRepeatingNumbers(vector < int > a) {
// Write your code here
int n = a.size();
int xr=0 ,one = 0 , zero = 0;
for (int i = 0 ; i<n ; ++i){
xr = xr ^ a[i] ^ (i+1);
}
int bit_no = 0;
while (1){
if ((xr & (1<<bit_no)) != 0)
break;
bit_no++;
}
for (int i = 0 ; i<n ;++i ){
if ((a[i] & (1<<bit_no)) != 0)
one = one ^ a[i];
else {
zero = zero ^ a[i];
}
if (((i+1) & (1<<bit_no)) != 0)
one ^= i+1;
else
zero ^= i+1;
}
int cnt = 0;
for (int i = 0 ; i<n ; ++i){
if (one == a[i]){
cnt++;
if (cnt == 2){
return {one , zero};
}
}
}
return {zero , one};
}