LeetCode solutions

2094. Remove Stones to Minimize the Total

My accepted Python solution to LeetCode problem 2094, Remove Stones to Minimize the Total, running in 548ms.

  • Difficulty: Medium
  • Python
  • Runtime 548ms
  • Memory 30.3MB

Read the problem on LeetCode View on GitHub

Python

Accepted on LeetCode — runtime 548ms, memory 30.3MB, accepted 2026-01-02.

python
class Solution:
    def minStoneSum(self, piles: List[int], k: int) -> int:
        import heapq
        
        # Use max heap (negate values for Python's min heap)
        heap = [-p for p in piles]
        heapq.heapify(heap)
        
        for _ in range(k):
            # Get largest pile
            largest = -heapq.heappop(heap)
            # Remove floor(largest/2) stones
            new_pile = largest - largest // 2
            heapq.heappush(heap, -new_pile)
        
        return -sum(heap)

Source