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 9 10class Solution { public: int minOperations(vector<int>& nums) { const int maxNum = ranges::max(nums); return accumulate(nums.begin(), nums.end(), 0, [](int subtotal, unsigned num) { return subtotal + 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 3 4 5class Solution: def minOperations(self, nums: List[int]) -> int: maxNum = max(nums) return sum(num.bit_count() for num in nums) + \ (0 if maxNum == 0 else maxNum.bit_length() - 1)