温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

leetcode中如何求三维形体的表面积

发布时间:2022-01-05 16:21:50 来源:亿速云 阅读:166 作者:小新 栏目:大数据

小编给大家分享一下leetcode中如何求三维形体的表面积,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

三维形体的表面积

在 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 <= 500 <= grid[i][j] <= 50
   


思路:

  • 一个立方体的面积为 4 * 1 + 2

leetcode中如何求三维形体的表面积

  • n 个立方体并排或者并列的面积为 ((4 * 1 + 2) - min(1,1) * 2) * (n - 1) + 4 * 1 + 2((4∗1+2)−min(1,1)∗2)∗(n−1)+4∗1+2 (其中min(1,1) * 2 是两个连一起导致的被隐藏的表面积)

leetcode中如何求三维形体的表面积

leetcode中如何求三维形体的表面积

leetcode中如何求三维形体的表面积


class Solution:    def surfaceArea(self, grid: List[List[int]]) -> int:        ans = 0        for i in range(len(grid)):            for j in range(len(grid[0])):                if grid[i][j] > 0:                    ans += grid[i][j] * 4 + 2                if i > 0:                    ans -= 2 * min(grid[i][j], grid[i - 1][j])                if j > 0:                    ans -= 2 * min(grid[i][j], grid[i][j - 1])        return ans

看完了这篇文章,相信你对“leetcode中如何求三维形体的表面积”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI