面试题 17.19
Solutions
class Solution {
public:
vector<int> missingTwo(vector<int>& nums) {
// n1 ^ n2
int mix = 0, all = 0;
int maxn = nums.size() + 2;
for (int n = 1; n <= maxn; n++)
mix ^= n;
for (auto n : nums)
mix ^= n;
// the rightmost 1 bit
int diff = mix & -mix;
int n1 = 0;
for (auto n : nums)
if (n & diff)
n1 ^= n;
for (int n = 1; n <= maxn; n++)
if (n & diff)
n1 ^= n;
return {n1, n1 ^ mix};
}
};Last updated