三维形体投影面积
难度:简单
这道题需要一点空间想象力,求三个投影的阴影部分:
正视图:每一行最大值之和相加;
侧视图:每一列最大值之和相加;
俯视图:柱子个数相加;
代码如下:
public int projectionArea(int[][] grid) {
int res = 0;
for (int i = 0; i < grid.length; i++) {
//记录当前列的最大值
int max1 = 0;
//记录当前行的最大值
int max2 = 0;
for (int j = 0; j < grid[0].length; j++) {
max1 = Math.max(max1,grid[i][j]);
max2 = Math.max(max2,grid[j][i]);
//如果非零,则证明有柱子存在。
if(grid[i][j]!=0)
res++;
}
res += max1+max2;
}
return res;
}