883. 三维形体投影面积
在 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. 三维形体投影面积相关推荐
- LeetCode 883. 三维形体投影面积(数学)
文章目录 题目 方法:数学 题目 883. 三维形体投影面积 方法:数学 xyxyxy 平面的投影面积等于网格上非零数值的数目 yz\texttt{yz}yz 平面的投影面积等于网格上每一列最大数值之 ...
- LeetCode刷题之883. 三维形体投影面积
LeetCode刷题之883. 三维形体投影面积 我不知道将去向何方,但我已在路上! 时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! 题目: 在N*N的网格中,我们放置了一些与 ...
- 力扣——883. 三维形体投影面积(Java、JavaScript、C实现)
三维形体投影面积 在 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 ( ...
- 883.三维形体投影面积
在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上. 现在,我们查 ...
- LeetCode——883. 三维形体投影面积
文章目录 题目描述 答案 我的答案 官方答案 数学 题目描述 在 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体. 每个值 v = grid[i ...
- 【Leetcode】883. 三维形体投影面积
题目描述: 在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上. ...
- leetcode 883. 三维形体投影面积(python)
题目链接 题目描述: 在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j ...
- 【日常训练】883. 三维形体投影面积
代码 在 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) ...
- 【C语言刷LeetCode】883. 三维形体投影面积(E)
[ 格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上. 现在,我们查看这 ...
最新文章
- Python3中lambda表达式介绍
- 皮一皮:外语学的好,就是这么溜~
- c语言条件判断!,if条件判断语句,谁能帮我分析一下?
- 【知识点总结】jQuery的扩展方法
- 机器学习笔记(二十三):算法精准率、召回率
- 解决win10的WiFi图标消失、win10打开或关闭系统图标网络灰色问题
- 怎么用光驱给服务器装系统,如何用光驱重装系统?
- 网站定时监控平台有哪些 7款好用的实时监控网站工具
- 时间窗口(Time Windows)
- Atitit 华为基本法 attilax读后感
- 2021美团Java面试真题解析(含参考答案)
- 浅谈民用建筑电气设计中智能消防应急照明系统的运用
- iPad中国内地商标权诉讼调查
- 2019-07-12 函数递归、二分法、匿名函数、三元表达式、内置函数
- PS软件操作应用—文字特效
- 很牛的求职经历(转)
- 学习tensorflow之mac上安装tensorflow
- EBS功能_WIP外协工单测试
- 毕业设计 树莓派视觉远程监控遥控小车设计与实现 - 嵌入式 物联网
- 自动查询域名备案脚本python