https://leetcode.com/problems/image-smoother/ Easy

Условие

Дана матрица img размером m x n, представляющая изображение в оттенках серого, где каждое значение — это яркость пикселя от 0 до 255. Необходимо сгладить изображение, заменив значение каждого пикселя средним значением (округлённым вниз) самого пикселя и всех его соседей (включая диагональные), которые находятся в пределах границ изображения.

Решение

class Solution {
    fun imageSmoother(img: Array<IntArray>): Array<IntArray> {
        val m = img.size
        val n = img[0].size
        val result = Array(m) { IntArray(n) }

        for (i in 0 until m) {
            for (j in 0 until n) {
                var sum = 0
                var count = 0
                for (di in -1..1) {
                    for (dj in -1..1) {
                        val ni = i + di
                        val nj = j + dj
                        if (ni in 0 until m && nj in 0 until n) {
                            sum += img[ni][nj]
                            count++
                        }
                    }
                }
                result[i][j] = sum / count
            }
        }

        return result
    }
}