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
}
}