每日一题力扣661图片平滑器

包含整数的二维矩阵 M 表示一个图片的灰度。你需要设计一个平滑器来让每一个单元的灰度成为平均灰度 (向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果周围的单元格不足八个,则尽可能多的利用它们。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/image-smoother
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

正解:

保存邻居和自己节点的值求和,再除以点的个数即可

class Solution(object):
    def imageSmoother(self, M):
        R, C = len(M), len(M[0])#图片的长度和宽度
        ans = [[0] * C for _ in M]#构造一个相同大小的0矩阵,先做里面的,再套外边的
        for r in range(R):
            for c in range(C):
                count = 0
                for nr in (r-1, r, r+1):
                    for nc in (c-1, c, c+1):
                        if 0 <= nr < R and 0 <= nc < C:
                            ans[r][c] += M[nr][nc]
                            count += 1
                ans[r][c] //= count

        return ans
原文地址:https://www.cnblogs.com/liuxiangyan/p/14455547.html