包含整数的二维矩阵 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