class Solution:
def surfaceArea(self, grid: List[List[int]]) -> int:
def neighbours(i, j):
overlap = 0
for di, dj in ((1, 0), (-1, 0), (0, 1), (0, -1)):
if 0<= i + di < len(grid) and 0 <= j +dj < len(grid[0]):
overlap += min(grid[i][j], grid[i + di][j + dj])
return overlap
ans = 0
for i in range(len(grid)):
for j in range(len(grid[0])):
if grid[i][j] != 0:
ans += 4 * grid[i][j] + 2 - neighbours(i, j)
return ans
leetcode-892 三维形体的表面积 Python
最新推荐文章于 2025-12-05 17:02:52 发布
本文介绍了一种计算三维网格表面总面积的方法,通过遍历网格中每个单元格的高度,考虑其四周和上下表面,减去相邻单元格之间的重叠部分,最终得出网格的总表面积。
418

被折叠的 条评论
为什么被折叠?



