【Leetcode】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
提示:
1 <= grid.length = grid[0].length <= 50
0 <= grid[i][j] <= 50
解题思路:
本题和之前做过的【807. 保持城市天际线】 问题很相似,本题是找三视图的面积,分别分成三个面来求解,
俯视:只要在网格位置上放置了立方体,向下投影的面积都是1,所以只需要区分有没有网格上放置立方体。
前视:找到对应列立方体最高的投影面积和(即每列最大值之和)。
左视:与前视原理一致。找到对应行立方体最高的投影面积和(即每列最大值之和)。
AC代码:
class Solution {
public:
int projectionArea(vector<vector<int>>& grid)
{//button int btonNums = 0;for (int i = 0; i < grid.size(); i++){for (int j = 0; j < grid[0].size(); j++){if (grid[i][j]>0) btonNums++;}}//fontint fontNums = 0;for (int i = 0; i < grid.size(); i++){int Rmax = 0;for (int j = 0; j < grid[0].size(); j++){if (grid[i][j]>Rmax) Rmax = grid[i][j];}fontNums += Rmax;}//leftint leftNums = 0;for (int j = 0; j < grid.size(); j++){int Cmax = 0;for (int i = 0; i < grid[0].size(); i++){if (grid[i][j]>Cmax) Cmax = grid[i][j];}leftNums += Cmax;}return btonNums + fontNums + leftNums;
}
};
【Leetcode】883. 三维形体投影面积相关推荐
- 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. 三维形体投影面积(python)
题目链接 题目描述: 在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j ...
- 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) 上. 现在,我们查看这 ...
- 883.三维形体投影面积
在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上. 现在,我们查 ...
最新文章
- Jmail 64bit 64位 不支持
- 高性能计算中并行的概念理解
- MongoDB在Windows系统下的安装和启动
- 家纺B2C优雅100获IDG及DCM 1000万美元投资
- 求矩阵中各列数字的和
- 基于优化反馈的组合在线学习
- SpringMvc01 第一个Springmvc应用
- Python可视化数据------seaborn
- 各执一词,民用安防市场现状看法PK
- 简析三星新专利,语音识别技术的新方法
- 电影票预售系统1.0
- 有了PDA手持终端,仓库再也不愁盘点了
- EasyDarwin流媒体云平台:EasyCamera开源摄像机接入海康威视摄像机实时视频
- android timepicker分割线颜色,Android TimePicker 的使用
- ORA-01403未找到任何数据select into问题分析
- 3.基于Golang协程实现流量统计系统-快速构建一个示例网站
- xbox one x驱动_Xbox One,Xbox One S和Xbox One X有什么区别?
- SEO新手入门系列2022(五):挖掘关键词
- proteus仿真micropython_【雕爷学编程】MicroPython动手做(07)——零基础学MaixPy之机器视觉...
- Windows沙拉:为什么下载的文件打开时会有警告,而且会被“锁定”?