1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| class Solution { public int[] missingTwo(int[] nums) { int n = nums.length + 2;
int xor = 0; for (int num : nums) { xor ^= num; } for (int num = 1; num <= n; num++) { xor ^= num; }
int diffMask = xor & -xor; int x = 0; for (int num : nums) { if ((num & diffMask) != 0) { x ^= num; } } for (int num = 1; num <= n; num++) { if ((num & diffMask) != 0) { x ^= num; } }
return new int[]{x, x ^ xor}; } }
|