661. 图片平滑器

exiaohu 于 2022-03-24 发布

题目链接:661. 图片平滑器

朴素解法,每个单元格逐个计算,可以很好地并行化。

from typing import List


class Solution:
    def imageSmoother(self, img: List[List[int]]) -> List[List[int]]:
        m = len(img)
        if m == 0:
            return []
        n = len(img[0])
        if n == 0:
            return []

        def _apply(x: int, y: int) -> int:
            eles = [img[i][j] for i in range(max(x - 1, 0), min(x + 2, m)) for j in range(max(y - 1, 0), min(y + 2, n))]
            return sum(eles) // len(eles)

        return [[_apply(x, y) for y in range(n)] for x in range(m)]