leetcode883. 三维形体投影面积

在 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体。

每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上。

现在,我们查看这些立方体在 xy 、yz 和 zx 平面上的投影。

投影 就像影子,将 三维 形体映射到一个 二维 平面上。从顶部、前面和侧面看立方体时,我们会看到“影子”。

返回 所有三个投影的总面积 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/projection-area-of-3d-shapes
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

leetcode883. 三维形体投影面积_第1张图片

 

输入:[[1,2],[3,4]]
输出:17
解释:这里有该形体在三个轴对齐平面上的三个投影(“阴影部分”)

模拟题思路:

首先可以发现面积之和就是三视图的面积之和,也就是三视图的方块数

leetcode883. 三维形体投影面积_第2张图片

 

比如说这个,假设第一个图是正视图第二个为俯视图,第三个为侧视图
正视图就等于数组中的元素个数,但是这里的元素个数必须大于0如果是0的话那就不存在方块
所以正视图的面积就是4
俯视图就等于每一行的最大值之和,第一行的最大值就是2第二行的最大值就是4两个相加就是6
侧视图就是每一列的最大值,第一列的最大值就是3第二列的最大值就是4加起来就是7
三个之和就是17

class Solution {
public:
    int projectionArea(vector>& grid) {

     int cnt=0,add=0;
     for(int i=0;i

你可能感兴趣的:(c语言,算法,leetcode,数据结构)