在 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
思路:[暴力]
我們可以求每個正方體的表面積,然後加起來即可。
如:grid[0][1] = 3
他有乙個頂部面積和底部面積為 top = 2
如果grid[0][1]在整個三維形體的左側,那麼它的左側面積為 grid[0][1];
如果grid[0][1]的右側grid[0][2]的高度比grid[0][1]小,那麼右側的面積為grid[0][1] - grid[0][2];
重複步驟2,3檢查其他方向。
重複以上步驟,最終得到每個位置上所貢獻出的頂面和底面積和側面積的和,則為三維形體的表面積。
上**(c):
//判斷這個位置是不是在三維形體的一側
bool check( int x, int y, int xlen, int
ylen )
int su***cearea(int** grid, int gridsize, int*gridcolsize),,,};
int top = 0
;
int side = 0
;
for( int i = 0; i < gridsize; i++)
else}}
}return side+top;
}
2020-03-25-09:45:22
三維形體的表面積
三維形體的表面積 93min 在 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 ...
三維形體的表面積
在 n n 的網格上,我們放置一些 1 1 1 的立方體。每個值 v grid i j 表示 v 個正方體疊放在對應單元格 i,j 上。請你返回最終形體的表面積。示例 1 輸入 2 表示在grid 0 0 的位置有2個正方體 輸出 10 示例 2 輸入 1,2 3,4 表示在grid 0 0 的位置...
leetcode三維形體的表面積
對於grid i,j 設其值為val,則單獨考慮當前元素,其貢獻的表面積為4 val 2 但是,gird i,j 可能和其他元素挨著,當挨著時,對於接觸的表面,要減去其表面積 對grid i,j 有上下左右四個方向可能有接觸,但我們只需要考慮上和左兩個方向,右和下放到後面的元素去考慮。即對grid ...