Leecode 892. 三维形体的表面积

简介: Leecode 892. 三维形体的表面积

在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体。

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

请你返回最终形体的表面积。

示例 1:

输入:[[2]]

输出:10

示例 2:

输入:[[1,2],[3,4]]

输出:34

示例 3:

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

输出:16

示例 4:

输入:[[1,1,1],[1,0,1],[1,1,1]]

输出:32

示例 5:

输入:[[2,2,2],[2,1,2],[2,2,2]]

输出:46

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/surface-area-of-3d-shapes

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

具体的图形解法可以参照

微信公众号:

甜姨的奇妙冒险

class Solution {
    public int surfaceArea(int[][] grid) {
        int result = 0;
        for (int i = 0; i < grid.length; i++) {
            for (int j = 0; j < grid[0].length; j++) {
                result += getFaceNum(grid, i, j);
            }
        }
        return result;
    }
    private int getFaceNum(int[][] grid, int i, int j) {
        if (grid[i][j] == 0){
            return 0;
        }
        int faceNum = grid[i][j] * 4 + 2;
        if (i - 1 >= 0) {
            faceNum -= Math.min(grid[i][j], grid[i - 1][j]);
        }
        if (j - 1 >= 0) {
            faceNum -= Math.min(grid[i][j], grid[i][j - 1]);
        }
        if (i + 1 < grid.length) {
            faceNum -= Math.min(grid[i][j], grid[i + 1][j]);
        }
        if (j + 1 < grid[0].length) {
            faceNum -= Math.min(grid[i][j], grid[i][j + 1]);
        }
        return faceNum;
    }
}


相关文章
|
6月前
|
存储 Serverless C++
[C++/PTA] 计算正方体、圆柱体的表面积、体积
[C++/PTA] 计算正方体、圆柱体的表面积、体积
113 0
|
算法
秒懂算法 | 计算几何:圆
计算几何的基础是点积和叉积,它们定义了向量的大小和方向的关系,是其他计算几何概念和算法的出发点。在点积和叉积的基础上,本篇重点介绍圆覆盖。 计算几何题目的代码大多繁琐冗长,因此掌握模板代码是学习计算几何的关键。本篇精心组织了经典的几何模板
18120 1
秒懂算法 | 计算几何:圆
Leecode 695. 岛屿的最大面积
Leecode 695. 岛屿的最大面积
35 0
每日一题—— 三维形体投影面积
每日一题—— 三维形体投影面积
112 0
每日一题—— 三维形体投影面积
洛谷P3194 [HNOI2008]水平可见直线(计算几何+单调栈)
洛谷P3194 [HNOI2008]水平可见直线(计算几何+单调栈)
107 0
洛谷P3194 [HNOI2008]水平可见直线(计算几何+单调栈)
|
Python
LeetCode每日一题——883. 三维形体投影面积
在 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体。
123 0
LeetCode每日一题——883. 三维形体投影面积
洛谷P3829 [SHOI2012]信用卡凸包(点的旋转+凸包)
洛谷P3829 [SHOI2012]信用卡凸包(点的旋转+凸包)
100 0
P4170 [CQOI2007]涂色
P4170 [CQOI2007]涂色
71 0
P4170 [CQOI2007]涂色