0%

Leetcode 661 图片平滑器

图像平滑器 是大小为 3 x 3 的过滤器,用于对图像的每个单元格平滑处理,平滑处理后单元格的值为该单元格的平均灰度。

每个单元格的 平均灰度 定义为:该单元格自身及其周围的 8 个单元格的平均值,结果需向下取整。(即,需要计算蓝色平滑器中 9 个单元格的平均值)。

题目意思就是写一个 3 * 3 的 Averge Pooling。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution:
def imageSmoother(self, img: List[List[int]]) -> List[List[int]]:
m, n = len(img), len(img[0])
ans = [[0 for _ in range(n)] for _ in range(m)]
directions = [-1, 0, 1]
for i in range(m):
for j in range(n):
count = 0
total = 0
for row in directions:
for col in directions:
if 0 <= i+row <= m-1 and 0 <= j+col <= n-1:
total += img[i+row][j+col]
count += 1
average = total // count
ans[i][j] = average
return ans