https://leetcode.com/problems/surface-area-of-3d-shapes/description/ Easy

Условие

Дана квадратная сетка grid размером n x n, где grid[i][j] представляет собой количество кубиков, сложенных в ячейке (i, j). Каждый кубик имеет размер 1 x 1 x 1. После размещения кубиков, они склеиваются с соседними по горизонтали и вертикали кубиками, образуя 3D-фигуру. Необходимо вычислить общую площадь поверхности полученной фигуры.

Решение

class Solution {
    fun surfaceArea(grid: Array<IntArray>): Int {
        val n = grid.size
        var area = 0
        for (i in 0 until n) {
            for (j in 0 until n) {
                val v = grid[i][j]
                if (v > 0) {
                    area += 2 + v * 4
                    if (i > 0) area -= 2 * minOf(v, grid[i - 1][j])
                    if (j > 0) area -= 2 * minOf(v, grid[i][j - 1])
                }
            }
        }
        return area
    }
}