Minimum Numbers of Function Calls to Make Target Array LeetCode solution in Java
1class Solution {2public int minOperations(int[] nums) {3int odd = 0, even = 0;4Map<Integer, Integer> map = new HashMap<>();5for (int n : nums) {6int res = dfs(n, map);7odd += res >> 5;8even = Math.max(res & 0b11111, even);9}1011return odd + even;12}1314private int dfs(int n, Map<Integer, Integer> map) {15if (n == 0) return 0;16if (map.containsKey(n)) return map.get(n);1718int res = n % 2 << 5;19res += dfs(n / 2, map) + (n > 1 ? 1 : 0);2021map.put(n, res);22return res;23}24}