LeetCodeDiary

A Diary for solving LeetCode problems

View on GitHub
class Solution:
    def leastBricks(self, wall: List[List[int]]) -> int:
        prefixSum = defaultdict(int)
        n = len(wall)
        for i in range(0, n):
            currSum = 0
            # 每一行砖的最后一列不要计算进来, 否则会把最右侧的垂直线考虑进去
            for j in range(0, len(wall[i]) - 1):
                # 计算每一行的砖的宽度和
                currSum += wall[i][j]
                # 如果有相同的前缀和, 这里会+1
                prefixSum[currSum] += 1
        # 总高度 减去 前缀和数量最多的
        return n - max(prefixSum.values(), default=0)

哈希表 中等 每日一题

摸鱼的一天

https://leetcode-cn.com/problems/brick-wall/