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

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

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

投影就像影子,将三维形体映射到一个二维平面上。

在这里,从顶部、前面和侧面看立方体时,我们会看到“影子”。

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

示例 1:

输入:[[2]]
输出:5

示例 2:

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

示例 3:

输入:[[1,0],[0,2]]
输出:8

示例 4:

输入:[[1,1,1],[1,0,1],[1,1,1]]
输出:14

示例 5:

输入:[[2,2,2],[2,1,2],[2,2,2]]
输出:21

==============================================

解题思路

我们肯定要遍历二维数组,遍历一次需要完成3个任务:

1.俯视图面积,即不为0元素的个数

2.主视图面积,即每一列的最大值之和

3.侧视图面积,即每一行的最大值之和

循环之后三者相加即可

难点:我们可以在每层循环中找到当层循环的最大值然后累加,即每行的最大值,那每列的最大值如何求呢?

我当时没多考虑,使用的数组进行接收的,因此空间换时间前提下速度还可以

其实我们可以同时以行的形式和列的形式一起遍历,即 arr [ i ][ j ]和arr [ j ][ i ]

这样可以将使用的空间控制在常数范围内

好了。。。不管讲的清不清楚,贴上我的垃圾代码

class Solution {public  int projectionArea(int[][] grid) {int x=0,y=0,z=0;int[] recordx = new int[grid[0].length];for (int i = 0; i < grid.length; i++) {int recordy =0;for (int j = 0; j < grid[i].length; j++) {//zif(grid[i][j]>0){z++;}//xrecordx[j]=recordx[j]>grid[i][j]?recordx[j]:grid[i][j];//yrecordy=recordy>grid[i][j]?recordy:grid[i][j];}y+=recordy;}for (int i = 0; i < recordx.length; i++) {x+=recordx[i];}return x+y+z;}
}

883. 三维形体投影面积相关推荐

  1. LeetCode 883. 三维形体投影面积(数学)

    文章目录 题目 方法:数学 题目 883. 三维形体投影面积 方法:数学 xyxyxy 平面的投影面积等于网格上非零数值的数目 yz\texttt{yz}yz 平面的投影面积等于网格上每一列最大数值之 ...

  2. LeetCode刷题之883. 三维形体投影面积

    LeetCode刷题之883. 三维形体投影面积 我不知道将去向何方,但我已在路上! 时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! 题目: 在N*N的网格中,我们放置了一些与 ...

  3. 力扣——883. 三维形体投影面积(Java、JavaScript、C实现)

    三维形体投影面积 在 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 ( ...

  4. 883.三维形体投影面积

    在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上. 现在,我们查 ...

  5. LeetCode——883. 三维形体投影面积

    文章目录 题目描述 答案 我的答案 官方答案 数学 题目描述 在 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体. 每个值 v = grid[i ...

  6. 【Leetcode】883. 三维形体投影面积

    题目描述: 在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上. ...

  7. leetcode 883. 三维形体投影面积(python)

    题目链接 题目描述: 在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j ...

  8. 【日常训练】883. 三维形体投影面积

    代码 在 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) ...

  9. 【C语言刷LeetCode】883. 三维形体投影面积(E)

    [ 格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上. 现在,我们查看这 ...

最新文章

  1. Python3中lambda表达式介绍
  2. 皮一皮:外语学的好,就是这么溜~
  3. c语言条件判断!,if条件判断语句,谁能帮我分析一下?
  4. 【知识点总结】jQuery的扩展方法
  5. 机器学习笔记(二十三):算法精准率、召回率
  6. 解决win10的WiFi图标消失、win10打开或关闭系统图标网络灰色问题
  7. 怎么用光驱给服务器装系统,如何用光驱重装系统?
  8. 网站定时监控平台有哪些 7款好用的实时监控网站工具
  9. 时间窗口(Time Windows)
  10. Atitit 华为基本法 attilax读后感
  11. 2021美团Java面试真题解析(含参考答案)
  12. 浅谈民用建筑电气设计中智能消防应急照明系统的运用
  13. iPad中国内地商标权诉讼调查
  14. 2019-07-12 函数递归、二分法、匿名函数、三元表达式、内置函数
  15. PS软件操作应用—文字特效
  16. 很牛的求职经历(转)
  17. 学习tensorflow之mac上安装tensorflow
  18. EBS功能_WIP外协工单测试
  19. 毕业设计 树莓派视觉远程监控遥控小车设计与实现 - 嵌入式 物联网
  20. 自动查询域名备案脚本python

热门文章

  1. CSS伪类(伪类选择器)
  2. 结构体指针变量的定义
  3. C++ STL函数库 pair (henu.hjy)
  4. js中大于0的正整数正则
  5. 在c#中,筛选一个List中的每个元素的开头或结尾是否包含另一个List的元素(StartWith()的使用)...
  6. 网站运维应该做些什么?
  7. 简易方法制作GIF图(mp4转GIF)
  8. 谷歌 Chrome 浏览器无法翻译网页解决方法
  9. 计算机专业学生 | 要尝试去学会阅读源码,它能让你学会很多!
  10. Vue环境搭建及第一个hello world