vector<int> findErrorNums1(vector<int>& nums){ int a = 0, b = 0; for(int i = 0;i < nums.size();i++) { a ^= nums[i]; b ^= i + 1; } a ^= b; int mask = a & (-a); b = 0; for(int i = 0;i < nums.size(); i++) { if (nums[i] & mask) b ^= nums[i]; if ((i+1) & mask) b ^= (i+1); } a = a ^ b; for(int i = 0;i < nums.size(); i++) { if (a == nums[i]) return {a, b}; } return {b, a}; }