1558. Minimum Numbers of Function Calls to Make Target Array ¶ Time: $O(n)$ Space: $O(1)$ C++JavaPython 1 2 3 4 5 6 7 8 9class Solution { public: int minOperations(vector<int>& nums) { const int maxNum = ranges::max(nums); return accumulate(nums.begin(), nums.end(), 0, [](int subtotal, int num) { return subtotal + __builtin_popcount(num); }) + (maxNum == 0 ? 0 : (int)log2(maxNum)); } }; 1 2 3 4 5 6 7class Solution { public int minOperations(int[] nums) { final int maxNum = Arrays.stream(nums).max().getAsInt(); return Arrays.stream(nums).map(num -> Integer.bitCount(num)).sum() + (maxNum == 0 ? 0 : (int) (Math.log(maxNum) / Math.log(2))); } } 1 2 3class Solution: def minOperations(self, nums: List[int]) -> int: return sum(bin(num).count('1') for num in nums) + len(bin(max(nums))) - 3