小編給大家分享一下leetcode中如何求三維形體的表面積,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
10多年的番禺網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整番禺建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“番禺網(wǎng)站設(shè)計(jì)”,“番禺網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
三維形體的表面積
在 N * N 的網(wǎng)格上,我們放置一些 1 * 1 * 1 的立方體。
每個(gè)值 v = grid[i][j] 表示 v 個(gè)正方體疊放在對(duì)應(yīng)單元格 (i, j) 上。
請(qǐng)你返回最終形體的表面積。
示例 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 <= 500 <= grid[i][j] <= 50
思路:
一個(gè)立方體的面積為 4 * 1 + 2
n 個(gè)立方體并排或者并列的面積為 ((4 * 1 + 2) - min(1,1) * 2) * (n - 1) + 4 * 1 + 2((4?1+2)?min(1,1)?2)?(n?1)+4?1+2 (其中min(1,1) * 2 是兩個(gè)連一起導(dǎo)致的被隱藏的表面積)
class Solution: def surfaceArea(self, grid: List[List[int]]) -> int: ans = 0 for i in range(len(grid)): for j in range(len(grid[0])): if grid[i][j] > 0: ans += grid[i][j] * 4 + 2 if i > 0: ans -= 2 * min(grid[i][j], grid[i - 1][j]) if j > 0: ans -= 2 * min(grid[i][j], grid[i][j - 1]) return ans
看完了這篇文章,相信你對(duì)“l(fā)eetcode中如何求三維形體的表面積”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!