[Python3] Heapq (Priority Queue)
Since we want the two largest stones each time, and heapq.pop() gives us the smallest each time, we just need to make every value of stones negative at the begi
Since we want the two largest stones each time, and heapq.pop() gives us the smallest each time, we just need to make every value of stones negative at the beginning.\n```\nimport heapq\nclass Solution:\n    def lastStoneWeight(self, stones: List[int]) -> int:\n        stones = [-val for val in stones]\n        heapq.heapify(stones)\n        while len(stones) > 1:\n            x1 = heapq.heappop(stones)\n            x2 = heapq.heappop(stones)\n            if x1 != x2:\n                heapq.heappush(stones,x1-x2)\n        if len(stones) == 0:\n            return 0\n        return -stones[0]\n```
[]