leetcode 892. 三維形體的表面積
阿新 • • 發佈:2019-05-01
輸出 size ace pro 描述 pre bubuko grid str
題目描述:
在 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
最開始!!!!題目半天沒看懂......捂臉..
如上圖:輸入為:【【2,1】,【1,0】】,求這四個立方體組成的整體的表面積,立方體個數*6-接觸面*2=4*6-3*2=18
class Solution { public: int surfaceArea(vector<vector<int>>& grid) { int i,j,number; int sum=0,num = 0; for(i=0;i<grid.size();i++) { for(j=0;j<grid[0].size();j++) {if(grid[i][j]!=0) { sum = sum+grid[i][j]; } if(grid[i][j]>1) { num = num+grid[i][j]-1; } if(i+1 < grid[0].size() && grid[i+1][j] != 0) //下 { num= num+min(grid[i][j],grid[i+1][j]); } if(j+1 < grid.size() && grid[i][j+1] != 0) //右 { num = num+min(grid[i][j],grid[i][j+1]); } } } number = sum*6-num*2; return number; } };
題目鏈接:https://leetcode-cn.com/problems/surface-area-of-3d-shapes/
leetcode 892. 三維形體的表面積