1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Solution { public int[] singleNumber(int[] nums) { int xor = 0; for (int num : nums) { xor ^= num; }
int mask = Integer.lowestOneBit(xor);
int[] res = new int[2]; for (int num : nums) { if ((mask & num) != 0) { res[0] ^= num; } else { res[1] ^= num; } } return res; } }
|
References
260. Single Number III
剑指 Offer 56 - I. 数组中数字出现的次数