列表

详情


883. 三维形体投影面积

 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体。

每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上。

现在,我们查看这些立方体在 xy 、yz 和 zx 平面上的投影

投影 就像影子,将 三维 形体映射到一个 二维 平面上。从顶部、前面和侧面看立方体时,我们会看到“影子”。

返回 所有三个投影的总面积

 

示例 1:

输入:[[1,2],[3,4]]
输出:17
解释:这里有该形体在三个轴对齐平面上的三个投影(“阴影部分”)。

示例 2:

输入:grid = [[2]]
输出:5

示例 3:

输入:[[1,0],[0,2]]
输出:8

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int projectionArea(vector<vector<int>>& grid) { } };

golang 解法, 执行用时: 8 ms, 内存消耗: 3.6 MB, 提交时间: 2021-06-11 17:01:24

func projectionArea(grid [][]int) int {
    n := len(grid)
    ans := 0
    for i := 0; i < n; i++ {
        rMax, cMax := 0, 0
        for j := 0; j < n; j++ {
            if grid[i][j] > 0 {
                ans++
            }
            rMax = max(grid[i][j], rMax)
            cMax = max(grid[j][i], cMax)
        }
        ans += rMax + cMax
    }

    return ans

}

func max(x, y int) int {
	if x > y {
		return x
	}
	return y
}

上一题