题目大意:给出一个n*n的矩阵,矩阵中的数字代表1*1*1小方格的高度,计算组成的立体图的三视图的面积和;
解题思路:分别计算主视图,侧视图,俯视图的面积;
主视图面积:矩阵中的每一列的最大值之和;
侧视图面积:矩阵中的每一行的最大值之和;
俯视图面积:矩阵中所有不为0的数字之和;
最后将三视图的面积加起来即为最终结果;
源码附上:
class Solution {
public:
int projectionArea(vector<vector<int>>& grid) {
int sum=0;
for(int i=0;i<grid.size();i++)
{
int x=0,y=0;
for(int j=0;j<grid.size();j++)
{
if(grid[i][j]!=0)
sum+=1;
x=max(grid[i][j],x);
y=max(grid[j][i],y);
}
sum+=x+y;
}
return sum;
}
};
本文介绍了一种计算由三维矩阵表示的立体图形三视图(主视图、侧视图、俯视图)面积的方法。通过遍历矩阵,分别求得每一列最大值之和作为主视图面积,每一行最大值之和作为侧视图面积,以及矩阵中所有非零元素数量作为俯视图面积。最终返回三个视图面积之和。
202

被折叠的 条评论
为什么被折叠?



