1167. Minimum Cost to Connect Sticks

其实根本就不是DP吧,一开始用DP的方法写,一直TLE,改成heap直接一直取最小就行了。

class Solution:
    def connectSticks(self, sticks: List[int]) -> int:
        if not sticks or len(sticks) <= 1: return 0
        
        heapq.heapify(sticks)
        
        res = 0
        while sticks:
            i = heapq.heappop(sticks)
            if sticks:
                j = heapq.heappop(sticks)
                res += (i+j)
                heapq.heappush(sticks, i+j)
                
        return res

Last updated

Was this helpful?