892. Surface Area of 3D Shapes
题目大意:求一个N*N的 3D模型的表面积
解题思路:考虑每一个1*1位置上的表面积,输入的为vector可以转换到数组中存放
class Solution {
public:
int surfaceArea(vector<vector<int>>& g) {
int n = g.size();
int res=0;
int grid[n+1][n+1];
memset(grid,0,sizeof(grid));
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
grid[i][j] = g[i][j];
}
}
//for(int i=0;i<n;i++) grid[n].push_back(0);
for(int i=0;i<n;i++)
{
//grid[i].push_back(0);
for(int j=0;j<n;j++)
{
if(grid[i][j]==0) continue;
res+=2;
if(i!=0 && grid[i][j]>grid[i-1][j]) res+=grid[i][j] - grid[i-1][j];
else if(i==0) res+=grid[i][j];
if(grid[i][j]> grid[i+1][j]) res+=grid[i][j]-grid[i+1][j];
if(j!=0 && grid[i][j]>grid[i][j-1]) res+=grid[i][j]-grid[i][j-1];
else if(j==0) res+=grid[i][j];
if(grid[i][j]>grid[i][j+1]) res+=grid[i][j]-grid[i][j+1];
}
}
return res;
}
};