题目描述:
在 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=,num = ;
for(i=;i<grid.size();i++)
{
for(j=;j<grid[].size();j++)
{
if(grid[i][j]!=)
{
sum = sum+grid[i][j];
}
if(grid[i][j]>)
{
num = num+grid[i][j]-;
}
if(i+ < grid[].size() && grid[i+][j] != ) //下
{
num = num+min(grid[i][j],grid[i+][j]);
}
if(j+ < grid.size() && grid[i][j+] != ) //右
{
num = num+min(grid[i][j],grid[i][j+]);
}
}
}
number = sum*-num*;
return number;
}
};
题目链接:https://leetcode-cn.com/problems/surface-area-of-3d-shapes/