资讯专栏INFORMATION COLUMN

887-三维形体投影面积

cheukyin / 1654人阅读

摘要:现在,我们查看这些立方体在和平面上的投影。投影就像影子,将三维形体映射到一个二维平面上。返回所有三个投影的总面积。

前言

LeetCode Weekly Contest 96的第一道题目,分值为4分。虽然标注为简单,但是需要有很好的空间想象力。原题目内容如下(由于这个题目需要结合题目中的示例查看,示例为一些图片,所以建议去原站看):

在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体。
每个值 v = gridi 表示 v 个正方体叠放在单元格 (i, j) 上。
现在,我们查看这些立方体在 xy、yz 和 zx 平面上的投影。
投影就像影子,将三维形体映射到一个二维平面上。
在这里,从顶部、前面和侧面看立方体时,我们会看到“影子”。
返回所有三个投影的总面积。
解题思路

这个题目初看起来很难,但是我们可以把这个问题分解为三个小问题,分别为顶部、前面和侧面的投影面积,然后通过示例找出这三个小问题的规律就可以了。

顶部投影面积:通过观察示例图可以发现顶部的投影实际上就是正方体占地面积,即可以看做是二维数组中不为0的元素个数

前面投影面积:通过观察示例图和二维数组,不难发现实际上前面的投影面积就是二维数组中每行元素的最大值之和

侧面投影面积:通过观察示例图和二维数组,不难发现实际上前面的投影面积就是二维数组中每列元素的最大值之和

实现代码
    public int projectionArea(int[][] grid) {
        int result=0;
        int xy=0;//顶部投影面积,对应二维数组不为0的元素个数
        int yz=0;//前面投影面积,对应二维数组每行元素的最大值之和
        int xz=0;//侧面投影面积,对应二维数组每列元素的最大值之和
        for(int i=0;i           
               
                                           
                       
                 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/76616.html

相关文章

  • 基于 HTML5 WebGL 的 3D 网络拓扑图

    摘要:基于的技术的图形组件组件通过对底层技术的封装,与其他组件一样,基于统一的数据模型来驱动图形显示,极大降低了图形技术开发的门槛,在熟悉数据模型基础上,一般程序员只需要小时的学习即可上手图形开发。 在数据量很大的2D 场景下,要找到具体的模型比较困难,并且只能显示出模型的的某一部分,显示也不够直观,这种时候能快速搭建出 3D 场景就有很大需求了。但是搭建 3D 应用场景又依赖于通过 3ds...

    doodlewind 评论0 收藏0

发表评论

0条评论

cheukyin

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<