三維形體的表面積

2022-04-10 03:17:23 字數 1368 閱讀 9327

三維形體的表面積(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]]

輸出:16

示例 4:

輸入:[[1,1,1],[1,0,1],[1,1,1]]

輸出:32

示例 5:

輸入:[[2,2,2],[2,1,2],[2,2,2]]

輸出:46

題解:題意:題目真是看了好長時間才看懂題目。題目給的數不是座標位置,給的是座標位置上的正方形的個數。

grid 是乙個二維陣列,grid[i]中描述了若干個高度不一的立方體,這些立方體由邊長為1x1x1堆疊而成。

grid=[[2]]的意思是在x=0,y=0處的長方體由2個立方體堆疊而成,高度為2,表面積就是2*6-2=10

grid=[[1,2],[3,4]]意思是

在x=0,y=0處的長方體由1個立方體堆疊而成,高度為1,表面積就是1x6=6

在x=0,y=1處的長方體由2個立方體堆疊而成,高度為2,表面積就是2x6-2=10,合計總面積=10+6-2=14,要減掉重疊的面積,1x2=2。

在x=1,y=0處的長方體由3個立方體堆疊而成,高度為3,表面積就是3x6-2x2=14,合計總面積=10+6+14-2-4=24,要減掉重疊的面積,2x2=4。

在x=1,y=1處的長方體由4個立方體堆疊而成,高度為4,表面積就是4x6-2x3=18,合計總面積=18+10+6+14-2-4-2-6=34,要減掉重疊的面積,3x2=6,1x2=2。

為啥座標是從(0,0),(0,1),(1,0),(1,1)開始的,我也不知道為啥。

方法:總面積減去重合面積。

思路:計算一共有多少個正方形,每個正方形都有6個面,假設有n個正方形,一共有6*n個面,但是需要去掉重合的面,重合面積分兩種情況:

1.當正方形和右邊的正方形重合。

2.當正方形和下面的正方形重合。

注意:在計算重合面積時,需要判斷當前正方形和右面和做下面那個正方形矮,重合面積只能重合到矮正方形。

每有正方形重合就會減少兩個面,所以正方形表面積等於n*6-重合面積*2。

說明:第乙個(0,0)位置的正方形在n*n網格的左上角。

**:

class

solution

return sum*6-face*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 ...

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