在 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]的位置有1個正方體,在grid[0][1]的位置有2個正方體,在grid[1][0]的位置有3個正方體在grid[1][1]的位置有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
classsolution
if(j != 0
) }
}return num*6 - numcontact*2
; }
};
解題思路:每個正方體的面有6個,每接觸1下,就會消耗2個面。因此只要計算出有多少個正方體,以及有多少個面有接觸就好了。
其中接觸面有兩種情況:(1)同乙個位置堆疊起來的正方體,其消耗的面個數為grid[i][j]-1(2)與左邊或上邊的立方體接觸,消耗的面個數為兩者的立方體個數最小值。
三維形體的表面積
三維形體的表面積 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 ...
leetcode三維形體的表面積
對於grid i,j 設其值為val,則單獨考慮當前元素,其貢獻的表面積為4 val 2 但是,gird i,j 可能和其他元素挨著,當挨著時,對於接觸的表面,要減去其表面積 對grid i,j 有上下左右四個方向可能有接觸,但我們只需要考慮上和左兩個方向,右和下放到後面的元素去考慮。即對grid ...
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...