Please solve the programming task below using a self-contained code snippet in a markdown code block.

You are given an array nums of positive integers. In one operation, you can choose any number from nums and reduce it to exactly half the number. (Note that you may choose this reduced number in future operations.)
Return the minimum number of operations to reduce the sum of nums by at least half.
 
Please complete the following python code precisely:
```python
class Solution:
    def halveArray(self, nums: List[int]) -> int:
```