链接:
https://leetcode-cn.com/problems/projection-area-of-3d-shapes/
描述和示例
代码:
class Solution {
public:
int projectionArea(vector<vector<int>>& grid) {
int xy=0;
int xz=0;
int yz=0;
for(int i = 0;i<grid.size();i++)
{
int nowxz = 0;
for(int j = 0;j<grid[0].size();j++)
{
xy+=(grid[i][j]!=0?1:0);
nowxz=max(nowxz,grid[i][j]);
}
xz+=nowxz;
}
for(int j = 0;j<grid[0].size();j++)
{
int nowyz=0;
for(int i = 0;i<grid.size();i++)
{
nowyz=max(nowyz,grid[i][j]);
}
yz+=nowyz;
}
return xy+xz+yz;
}
};
分析:
题目:
给定一个数组
数组的中元素a表示:
在a所在的位置(i,j)上放a个石块
代码分析:
在xy界面上
遍历整个数组,如果这个位置的元素不等于0,那么xy界面上他就会有一个阴影
在xz界面上
数组中每一行最大的元素相加
在yz界面上
数组中每一列最大的元素相加
最后返回xy+xz+yz