We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 4f0cefe commit d180b80Copy full SHA for d180b80
Medium/Single Number III.java
@@ -1,15 +1,17 @@
1
class Solution {
2
public int[] singleNumber(int[] nums) {
3
- Set<Integer> set = new HashSet<>();
+ int xorValue = Integer.highestOneBit(Arrays.stream(nums)
4
+ .boxed()
5
+ .reduce((a, b) -> a ^ b)
6
+ .orElse(0));
7
+ int[] result = new int[2];
8
for (int num : nums) {
- if (set.contains(num)) {
- set.remove(num);
- }
- else {
9
- set.add(num);
+ if ((xorValue & num) == 0) {
10
+ result[0] ^= num;
11
+ } else {
12
+ result[1] ^= num;
13
}
14
- Iterator<Integer> iter = set.iterator();
- return new int[]{iter.next(), iter.next()};
15
+ return result;
16
17
0 commit comments