892. Surface Area of 3D Shapes

On a `N * N` grid, we place some `1 * 1 * 1 `cubes.

Each value `v = grid[i][j]` represents a tower of `v` cubes placed on top of grid cell `(i, j)`.

Return the total surface area of the resulting shapes.

Example 1:

``````Input: [[2]]
Output: 10
``````

Example 2:

``````Input: [[1,2],[3,4]]
Output: 34
``````

Example 3:

``````Input: [[1,0],[0,2]]
Output: 16
``````

Example 4:

``````Input: [[1,1,1],[1,0,1],[1,1,1]]
Output: 32
``````

Example 5:

``````Input: [[2,2,2],[2,1,2],[2,2,2]]
Output: 46
``````

Note:

• `1 <= N <= 50`
• `0 <= grid[i][j] <= 50`

``````class Solution {
public:
int surfaceArea(vector<vector<int>>& grid) {
int n = grid.size(), res = 0;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (grid[i][j] > 0) res += 4 * grid[i][j] + 2;
if (i > 0) res -= min(grid[i][j], grid[i - 1][j]) * 2;
if (j > 0) res -= min(grid[i][j], grid[i][j - 1]) * 2;
}
}
return res;
}
};
``````

Github 同步地址:

https://github.com/grandyang/leetcode/issues/892

Projection Area of 3D Shapes

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

https://leetcode.com/problems/surface-area-of-3d-shapes/discuss/163414/C%2B%2BJava1-line-Python-Minus-Hidden-Area

 微信打赏 Venmo 打赏
（欢迎加入博主的知识星球，博主将及时答疑解惑，并分享刷题经验与总结，试运营期间前五十位可享受半价优惠～）

×

Help us with donation