Leetcode:892. 三维形体的表面积(Java)
在?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
代碼:
class?Solution?{
????public?int?surfaceArea(int[][]?grid)?{
????????if(grid.length==0){
????????????return?0;
????????}
????????int?count=0;
????????for(int?i=0;i<grid.length;i++)
????????{
????????????for(int?j=0;j<grid[0].length;j++)
????????????{
????????????????if(grid[i][j]==0){
????????????????????continue;
????????????????}
????????????????if(i==0&&j==0)
????????????????{
????????????????????count+=grid[i][j]*4+2;
????????????????}else?if(i==0){
????????????????????count+=grid[i][j]*4+2;
????????????????????count-=2*Math.min(grid[i][j-1],grid[i][j]);
????????????????}else?if(j==0){
????????????????????count+=grid[i][j]*4+2;
????????????????????count-=2*Math.min(grid[i][j],grid[i-1][j]);
????????????????}else{
????????????????????count+=grid[i][j]*4+2;
????????????????????count-=2*Math.min(grid[i][j],grid[i-1][j]);
????????????????????count-=2*Math.min(grid[i][j],grid[i][j-1]);
????????????????}
????????????}
????????}
????????return?count;
????}
}
總結
以上是生活随笔為你收集整理的Leetcode:892. 三维形体的表面积(Java)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode--279. 完全平方数
- 下一篇: Leetcode--1028. 从先序遍