leetcode 883. 三维形体投影面积(python)
题目链接
题目描述:
在 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
解题思路:
grid的长度表示立方体的行数,中间每一个元素表示叠放的立方体个数,x-y上的阴影面积就是grid中不为0的个数,其余两个方向的投影分别为每行最大值之和,每列最大值只和。
class Solution:def projectionArea(self, grid: List[List[int]]) -> int:area=0for i in grid:area+=max(i)for j in i:if j!=0:area+=1for i in range(0,len(grid[0])):mm=0for j in range(len(grid)):if grid[j][i]>mm:mm= grid[j][i]area+=mmreturn area
p.s.别人的做法
计算x-y投影时,不用遍历每一个元素,遍历每一行统计这一行0的个数,用元素总数减去即可;用zip(*grid)得到转置后的矩阵,这样在统计每一行的最大值,用一重循环即可。
sum=0for row in grid:sum+=max(row)sum-=row.count(0)for col in zip(*grid):sum+=max(col)return sum+len(grid)*len(grid)
leetcode 883. 三维形体投影面积(python)相关推荐
- LeetCode 883. 三维形体投影面积(数学)
文章目录 题目 方法:数学 题目 883. 三维形体投影面积 方法:数学 xyxyxy 平面的投影面积等于网格上非零数值的数目 yz\texttt{yz}yz 平面的投影面积等于网格上每一列最大数值之 ...
- LeetCode——883. 三维形体投影面积
文章目录 题目描述 答案 我的答案 官方答案 数学 题目描述 在 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体. 每个值 v = grid[i ...
- LeetCode 883 三维形体投影面积[数学] HERODING的LeetCode之路
解题思路: 本次每日一题题目描述极其不清,其实就是对于n*n的物体,求其三个投影的面积和,也就是底面积(该位置是否有方块)+每行最高的和+每列最高的和,代码如下: class Solution {pu ...
- 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 个正方体叠放在单元格 ( ...
- LeetCode 887. 三维形体投影面积
887. 三维形体投影面积 在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i ...
- 【C语言刷LeetCode】883. 三维形体投影面积(E)
[ 格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上. 现在,我们查看这 ...
- 【Leetcode】883. 三维形体投影面积
题目描述: 在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上. ...
- 883.三维形体投影面积
在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上. 现在,我们查 ...
最新文章
- React 组件之间 事件调用(父组件调用子组件)
- 医疗安全监控与检测平台WattsUpDoc
- 【万字长文】详解Python时间处理模块-datetime
- oracle access manager token,AuthenticationManager验证原理
- 原生JS封装自己的AJAX
- /usr/bin/ld: cannot find -lfontconfig解决方法
- 最优化课程笔记07——约束问题的非线性规划方法(重点:拉格朗日乘子法和惩罚函数法)
- 为什么 Java 进程使用的 RAM 比 Heap Size 大?​ | CSDN博文精选
- 如何保障大数据平台的安全性
- C#控制台应用程序执行结果一闪而过的解决方法
- flask 导出excel
- 在线计算机微积分,高等数学计算器
- 【转载】Ansys中的阻尼
- 手机厂商为什么都开始造电视了?
- 笔记本电脑更改计算机驱动怎么进不去,笔记本电脑进入不了BIOS的原因与解决办法...
- 一键编译安装mysql数据库
- Linux可重入函数
- SCTK的使用——MgB2
- Python这么火,关软件测试什么事?
- IEEE1394串行连接技术