Python | Leetcode Python题解之第554题砖墙

Leetcode题目的Python题解

题目:

题解:

class Solution:
    def leastBricks(self, wall: List[List[int]]) -> int:
        n = len(wall)

        # heap内存放的格式为(前缀和、行、列)
        heap = list()
        ans = n

        for i in range(n):
            if len(wall[i]) > 1:
                heapq.heappush(heap, [wall[i][0], i, 1])

        while heap:
            # 最左边的位置
            count = 0
            cur = heap[0][0]
            while heap and heap[0][0] == cur:
                count += 1
                tmp = heapq.heappop(heap)
                if tmp[2] + 1 < len(wall[tmp[1]]):
                    tmp[0] += wall[tmp[1]][tmp[2]]
                    tmp[2] += 1
                    heapq.heappush(heap, tmp)
            if n - count < ans:
                ans = n - count

        return ans
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值