https://leetcode.com/problems/projection-area-of-3d-shapes/description/ | Easy |
---|
Дана квадратная сетка grid
размером n x n
, где grid[i][j]
представляет собой количество кубиков, сложенных в ячейке (i, j)
. Необходимо вычислить суммарную площадь проекций этой 3D-фигуры на три плоскости:
• XY-плоскость (вид сверху): количество ячеек, где grid[i][j] > 0
.
• YZ-плоскость (вид сбоку): сумма максимальных значений в каждом столбце.
• XZ-плоскость (вид спереди): сумма максимальных значений в каждой строке.
class Solution {
fun projectionArea(grid: Array<IntArray>): Int {
val n = grid.size
var top = 0
var front = 0
var side = 0
for (i in 0 until n) {
var maxRow = 0
var maxCol = 0
for (j in 0 until n) {
if (grid[i][j] > 0) top++
maxRow = maxOf(maxRow, grid[i][j])
maxCol = maxOf(maxCol, grid[j][i])
}
front += maxRow
side += maxCol
}
return top + front + side
}
}