三维形体的表面积

作者: _阿南_ | 来源:发表于2020-03-25 10:54 被阅读0次

题目:

在 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
提示:
1 <= N <= 50
0 <= grid[i][j] <= 50

题目的理解:

计算每一个坐标的表面积,然后累加。

python实现

from typing import List

class Solution:
    def surfaceArea(self, grid: List[List[int]]) -> int:
        total_area = 0
        N = len(grid)

        for row in range(N):
            for column in range(N):
                value = grid[row][column]

                if 0 == value:
                    continue

                total_area += 2

                if column - 1 >= 0:
                    if grid[row][column - 1] < value:
                        total_area += value - grid[row][column - 1]
                else:
                    total_area += value

                if column + 1 < N:
                    if grid[row][column + 1] < value:
                        total_area += value - grid[row][column + 1]
                else:
                    total_area += value

                if row - 1 >= 0:
                    if grid[row - 1][column] < value:
                        total_area += value - grid[row - 1][column]
                else:
                    total_area += value

                if row + 1 < N:
                    if grid[row + 1][column] < value:
                        total_area += value - grid[row + 1][column]
                else:
                    total_area += value

        return total_area

想看最优解法移步此处

提交

ok

看了解法后,觉得代码还可以优化下啊,写了好多的冗余代码。

// END 学无止境,保持好的心态继续加油

相关文章

  • LeetCode | 0892. Surface Area of

    LeetCode 0892. Surface Area of 3D Shapes三维形体的表面积【Easy】【Py...

  • 计算表面积

    0X00 算法总结 892. 三维形体的表面积 分别计算每个柱体的表面积, 然后减去每个柱子的贴合部分 比如有下面...

  • 三维形体的表面积

    在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体。 每个值 v = grid[i][j] 表...

  • 三维形体的表面积

    题目: 题目的理解: 计算每一个坐标的表面积,然后累加。 python实现 想看最优解法移步此处 提交 看了解法后...

  • 892. 三维形体的表面积

    在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体。 每个值 v = grid[i][j] 表...

  • 892. 三维形体的表面积

    解题思路 这题主要还是考验空间想象能力吧。起初是想用投影法做的,但发现如果形体中间有洞的话则不行。所以还是用每个立...

  • 892. 三维形体的表面积(Python)

    题目 难度:★★☆☆☆类型:几何、数学、二维数组 在 N * N 的网格上,我们放置一些 1 * 1 * 1 的...

  • 2020-03-25 三维形体的表面积

    在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体。 每个值 v = grid[i][j] 表...

  • 圆柱圆锥的体积

    上次我们说了圆柱和圆锥的表面积,而三维立体图形,除表面积之外,还有一个重要的部分:体积。 首先我们来看看圆...

  • 883. 三维形体投影面积 - 每日一题

    883. 三维形体投影面积[https://leetcode-cn.com/problems/projection...

网友评论

    本文标题:三维形体的表面积

    本文链接:https://www.haomeiwen.com/subject/lcuiyhtx.html