Skip to content

Commit d180b80

Browse files
authored
Update Single Number III.java
1 parent 4f0cefe commit d180b80

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

Medium/Single Number III.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
class Solution {
22
public int[] singleNumber(int[] nums) {
3-
Set<Integer> set = new HashSet<>();
3+
int xorValue = Integer.highestOneBit(Arrays.stream(nums)
4+
.boxed()
5+
.reduce((a, b) -> a ^ b)
6+
.orElse(0));
7+
int[] result = new int[2];
48
for (int num : nums) {
5-
if (set.contains(num)) {
6-
set.remove(num);
7-
}
8-
else {
9-
set.add(num);
9+
if ((xorValue & num) == 0) {
10+
result[0] ^= num;
11+
} else {
12+
result[1] ^= num;
1013
}
1114
}
12-
Iterator<Integer> iter = set.iterator();
13-
return new int[]{iter.next(), iter.next()};
15+
return result;
1416
}
1517
}

0 commit comments

Comments
 (0)