Minimum Numbers of Function Calls to Make Target Array LeetCode solution in Java

1
class Solution {
2
public int minOperations(int[] nums) {
3
int odd = 0, even = 0;
4
Map<Integer, Integer> map = new HashMap<>();
5
for (int n : nums) {
6
int res = dfs(n, map);
7
odd += res >> 5;
8
even = Math.max(res & 0b11111, even);
9
}
10

11
return odd + even;
12
}
13

14
private int dfs(int n, Map<Integer, Integer> map) {
15
if (n == 0) return 0;
16
if (map.containsKey(n)) return map.get(n);
17

18
int res = n % 2 << 5;
19
res += dfs(n / 2, map) + (n > 1 ? 1 : 0);
20

21
map.put(n, res);
22
return res;
23
}
24
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0