leetcode

Leetcode submissions
git clone git://git.laack.co/leetcode.git
Log | Files | Refs | README

last-stone-weightV1.py (678B)


      1 from heapq import heappop, heappush, heapify
      2 
      3 
      4 class Solution:
      5     def lastStoneWeight(self, stones: List[int]) -> int:
      6 
      7         # heapq is a min-heap.
      8 
      9         stones = [-x for x in stones]
     10         heapify(stones)
     11         heap = stones
     12 
     13         while len(heap) > 1:
     14 
     15             # y
     16             heaviest = heappop(heap)
     17 
     18             # x
     19             second_heaviest = heappop(heap)
     20 
     21             # if x == y both destroyed
     22             if heaviest == second_heaviest:
     23                 continue
     24 
     25             # x != y
     26             heaviest = heaviest - second_heaviest
     27             heappush(heap, heaviest)
     28 
     29         if len(heap) == 1:
     30             return heap[0] * -1
     31 
     32         return 0