LeetCode數學題 892三維形體的表面積

2021-10-04 10:13:22 字數 1051 閱讀 1865

在 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[i][j]這個柱體而言,對總表面積的貢獻可以分為以下幾部分:

1.height = grid[i][j], 若height > 0,則其對上下表面積總共貢獻2;

2.對於該柱體的四個側面中的每乙個而言,若與其相貼的柱體側面高度最終將每個柱體貢獻的表面積相加即可。

int su***cearea(vector>& grid) ;

int dc;

int n = grid.size();

int ans = 0;

for (int r = 0; r < n; ++r)

for (int c = 0; c < n; ++c)

if (grid[r][c] > 0)

}return ans;

}

做減法,先不管三七二十一將每個柱體對總表面積的貢獻即上下左右前後6個面都算上,然後再減去它和相鄰的柱體重合而導致減少的表面積,重合的面積是該柱體與相鄰柱體中較矮的高度,為避免減去已經減過的重合面積,對每個柱體都計算其背面和左面的重合面積。

int su***cearea(vector>& grid) 

} }return ans;

}

LeetCode數學題 836矩形重疊

矩形以列表 x1,y1,x2,y2 的形式表示,其中 x1,y1 為左下角的座標,x2,y2 是右上角的座標。如果相交的面積為正,則稱兩矩形重疊。需要明確的是,只在角或邊接觸的兩個矩形不構成重疊。給出兩個矩形,判斷它們是否重疊並返回結果。示例 1 輸入 rec1 0,0,2,2 rec2 1,1,3...

小學數學題

小學數學題1 usetyp 1 目標 擷取字串usetyp 注意,usetyp的長度是可變的 問題 求以上字串usetyp的長度 注意usetyp的長度是不固定 設usetyp的長度 p 已知1 號的索引位置x indexof 已知理論2 字串長度 最大索引 1 所以,p x 1 3 p x 2 所...

數學題亂記

在 delta abc 中,滿足 cos 2 cfrac 判斷三角形形狀。其中 begin cos 2 cfrac cfrac cfrac sin 1 cos cfrac sin 1 cos cfrac 1 cos cfrac cos cfrac end 根據餘弦定理有 cos cfrac 所以可得...