892.leetcode题目讲解(Python):三维形体的表面积(Surface Area of 3D Shapes)

题目

题目

解题思路

解这道题的思路为,首先获取一个坐标点长方体的表面积,计算公式如下:

然后减去其 “上、下、左、右” 与相邻长方体的重叠表面积,减去的面积应该是相邻两个长方体中高度(grid[i][j])较小的那个。

参考代码

代码一:为了方便理解,我们先写个不太精炼的, 如下:

代码二:仔细观察代码一,我们会发现其中的一些代码没有必要,每个长方体只需要考虑自己的下方和右方相邻的长方体,然后减去2倍的重叠面积就可以了,精简后的代码如下: