(思維)892 三維形體的表面積

2021-09-26 05:37:06 字數 884 閱讀 1253

在 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 <= 50

0 <= grid[i][j] <= 50

題解:if a[i][j] > 0 ,ans += 4*a[i][j] (前後左右面),再判斷前後左右:a[i-1][j]、a[i+1][j]、a[i][j+1]、a[i][j-1]

以 a[i-1][j] 舉例:如果 a[i-1][j] > a[i][j] ,那麼 ans -= a[i][j];因為 a[i-1][j] 會把 a[i][j] 一面全部遮住;

如果 a[i-1][j] <= a[i][j] ,那麼 ans -= a[i-1][j];因為 a[i-1][j] 會把 a[i][j] 的一部分遮住;

class solution ,,,};

int su***cearea(vector>& a) }}

}return ans;

}};

892 三維形體的表面積

在 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...

892 三維形體的表面積

su ce area of 3d shapes 題目描述 在 n n 的網格上,我們放置一些 1 1 1 的立方體。每個值 v grid i j 表示 v 個正方體疊放在對應單元格 i,j 上。請你返回最終形體的表面積。示例 1 輸入 2 輸出 10 示例 2 輸入 1,2 3,4 輸出 34 示例...

LeetCode892 三維形體的表面積

題目描述 在 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...