Single Number III
- lintcode: (84) Single Number III
public class Solution {
/**
* @param A : An integer array
* @return : Two integers
*/
ArrayList<Integer> nums = new ArrayList<Integer>();
if (A == null || A.length == 0) return nums;
int x1xorx2 = 0;
for (int i : A) {
x1xorx2 ^= i;
}
// get the last 1 bit of x1xorx2, e.g. 1010 ==> 0010
int last1Bit = x1xorx2 - (x1xorx2 & (x1xorx2 - 1));
int single1 = 0, single2 = 0;
for (int i : A) {
single1 ^= i;
} else {
single2 ^= i;
}
}
nums.add(single1);
nums.add(single2);
return nums;
}
}