Surface Area of 3D Shapes - Math - Easy - LeetCode
💻 coding

Surface Area of 3D Shapes - Math - Easy - LeetCode

1 min read 205 words
1 min read
ShareWhatsAppPost on X
  • 1The total surface area of 3D shapes on a grid is calculated based on the height of cubes in each cell.
  • 2For each tower, the surface area is computed as 4 times the height plus 2 for the top and bottom.
  • 3Adjacent towers reduce the visible surface area by the minimum height of the two towers multiplied by 2.

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"The total surface area of 3D shapes on a grid is calculated based on the height of cubes in each cell."

Surface Area of 3D Shapes - Math - Easy - LeetCode

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

public class Solution {
 public int SurfaceArea(int[][] grid) {
 int res = 0, n = grid.Length;
 for (int i = 0; i < n; ++i) {
 for (int j = 0; j < n; ++j) {
 if (grid[i][j] > 0) res += grid[i][j] * 4 + 2;
 if (i > 0) res -= Math.Min(grid[i][j], grid[i - 1][j]) * 2;
 if (j > 0) res -= Math.Min(grid[i][j], grid[i][j - 1]) * 2;
 }
 }
 return res;
 }
}

Time Complexity: O(n^2)

Space Complexity: O(1)

For each tower, its surface area is 4 * v + 2 However, 2 adjacent tower will hide the area of connected part. The hidden part is min(v1, v2) and we need just minus this area * 2

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

sumitc91

Published on 1 October 2020 · 1 min read · 205 words

Part of AskGif Blog · coding

You might also like