题目描述:
思路:
首先计算总面积
然后计算重叠面积
代码如下:
class Solution {
public:
int surfaceArea(vector<vector<int>>& grid) {
int sum=0,lap=0;
for(int i=0;i<grid.size();i++){
for(int j=0;j<grid.size();j++){
sum+=6*grid[i][j];
if(grid[i][j]>0)
lap+=(grid[i][j]-1)*2;//上下
if(j<grid.size()-1)
lap+=min(grid[i][j],grid[i][j+1])*2;//前后
if(i<grid.size()-1)
lap+=min(grid[i][j],grid[i+1][j])*2;//左右
}
}
return sum-lap;
}
};