class Solution { public int[][] imageSmoother(int[][] img) { int m = img.length, n = img[0].length; int[][] ans = new int[m][n]; int[][] dirs = new int[][]{{0,0},{1,0},{-1,0},{0,1},{0,-1},{-1,-1},{-1,1},{1,-1},{1,1}}; for (int i = 0; i = m || ny = n) continue; tot += img[nx][ny]; cnt++; } ans[i][j] = tot / cnt; } } return ans; }}
登录后复制
C++ 代码:
代码语言:javascript代码运行次数:0运行复制
class Solution {public: vector> imageSmoother(vector>& img) { int m = img.size(); if (m == 0) return {}; int n = img[0].size(); vector> ans(m, vector(n, 0)); vector> dirs = {{0, 0}, {1, 0}, {-1, 0}, {0, 1}, {0, -1}, {-1, -1}, {-1, 1}, {1, -1}, {1, 1}}; for (int i = 0; i = m || ny = n) continue; tot += img[nx][ny]; cnt++; } ans[i][j] = tot / cnt; } } return ans; }};
登录后复制
Python 代码:
代码语言:javascript代码运行次数:0运行复制
dirs = list(product(*[[-1,0,1]] * 2))class Solution: def imageSmoother(self, img: List[List[int]]) -> List[List[int]]: m, n = len(img), len(img[0]) ans = [[0] * n for _ in range(m)] for i in range(m): for j in range(n): tot, cnt = 0, 0 for di in dirs: if 0
TypeScript 代码:
代码语言:javascript代码运行次数:0运行复制
function imageSmoother(img: number[][]): number[][] { const m = img.length; if (m === 0) return []; const n = img[0].length; const ans = new Array(m).fill(0).map(() => new Array(n).fill(0)); const dirs = [[0, 0], [1, 0], [-1, 0], [0, 1], [0, -1], [-1, -1], [-1, 1], [1, -1], [1, 1]]; for (let i = 0; i = m || ny = n) continue; tot += img[nx][ny]; cnt++; } ans[i][j] = Math.floor(tot / cnt); } } return ans;};
class Solution { public int[][] imageSmoother(int[][] img) { int m = img.length, n = img[0].length; int[][] sum = new int[m + 10][n + 10]; for (int i = 1; i
C++ 代码:
代码语言:javascript代码运行次数:0运行复制
class Solution {public: vector> imageSmoother(vector>& img) { int m = img.size(), n = img[0].size(); vector> sumv(m + 2, vector(n + 2, 0)); for (int i = 1; i > ans(m, vector(n, 0)); for (int i = 0; i
Python 代码:
代码语言:javascript代码运行次数:0运行复制
class Solution: def imageSmoother(self, img: List[List[int]]) -> List[List[int]]: m, n = len(img), len(img[0]) sum = [[0] * (n + 10) for _ in range(m + 10)] for i in range(1, m + 1): for j in range(1, n + 1): sum[i][j] = sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1] + img[i - 1][j - 1] ans = [[0] * n for _ in range(m)] for i in range(m): for j in range(n): a, b = max(0, i - 1), max(0, j - 1) c, d = min(m - 1, i + 1), min(n - 1, j + 1) cnt = (c - a + 1) * (d - b + 1) tot = sum[c + 1][d + 1] - sum[a][d + 1] - sum[c + 1][b] + sum[a][b] ans[i][j] = tot // cnt return ans
登录后复制
TypeScript 代码:
代码语言:javascript代码运行次数:0运行复制
function imageSmoother(img: number[][]): number[][] { const m = img.length, n = img[0].length; const sum = Array.from({ length: m + 10 }, () => new Array(n + 10).fill(0)); for (let i = 1; i new Array(n).fill(0)); for (let i = 0; i 时间复杂度:O(m \times n)空间复杂度:O(m \times n)