0883. Projection Area of 3 D Shapes

0883. Projection Area of 3D Shapes #

题目 #

  • n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体。
  • 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上。
  • 现在,我们查看这些立方体在 xyyzzx 平面上的投影
  • 投影 就像影子,将 三维 形体映射到一个 二维 平面上。从顶部、前面和侧面看立方体时,我们会看到“影子”。
  • 返回 所有三个投影的总面积

思路 #

模拟 #

代码 #

模拟 #

class Solution {
    public int projectionArea(int[][] grid) {
        int area = 0;
        for (int i = 0; i < grid.length; i++) {
            for (int j = 0; j < grid[0].length; j++) {
                if (grid[i][j] != 0) area++;
            }
        }
        for (int i = 0; i < grid.length; i++) {
            int maximum = 0;
            for (int j = 0; j < grid[0].length; j++) {
                maximum = Math.max(maximum, grid[i][j]);
            }
            area += maximum;
        }
        for (int j = 0; j < grid[0].length; j++) {
            int maximum = 0;
            for (int i = 0; i < grid.length; i++) {
                maximum = Math.max(maximum, grid[i][j]);
            }
            area += maximum;
        }
        return area;
    }
}

致谢 #

宫水三叶