Code

Python3

def halveArray(self, A: List[int]) -> int:
 
    S = sum(A)
    H = S / 2
 
    heap = [-n for n in A]   # max heap
    heapq.heapify(heap)
 
    result = 0
    while S > H:
        cur = -heappop(heap)
 
        heappush(heap, -cur / 2)
 
        S -= (cur / 2)
 
        result += 1
 
    return result

Big O Analysis

  • Runtime

    The runtime complexity here is where N is .

  • Memory

    The memory usage is since we use a heap.

— A

GitHub | Twitter