Array of Doubled Pairs LeetCode solution in Java

1
class Solution {
2
public boolean canReorderDoubled(int[] arr) {
3
Map<Integer, Integer> map = new HashMap<>();
4
int zeroCount = 0, out = 0, len = arr.length;
5
Arrays.sort(arr);
6
for (int ar : arr) {
7
if (ar % 2 == 1) map.put(ar, map.getOrDefault(ar, 0) + 1);
8
else {
9
if (ar > 0) {
10
int val = map.getOrDefault(ar / 2, 0);
11
if (val > 0) {
12
out++;
13
map.put(ar / 2, val - 1);
14
} else map.put(ar, map.getOrDefault(ar, 0) + 1);
15
} else if (ar < 0) {
16
int val = map.getOrDefault(ar2, 0);
17
if (val > 0) {
18
out++;
19
map.put(ar2, val - 1);
20
} else map.put(ar, map.getOrDefault(ar, 0) + 1);
21
} else zeroCount++;
22
}
23
}
24
zeroCount = zeroCount / 2;
25
return out + zeroCount == len / 2;
26
}
27
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0