LeetCode 0883「三维形体投影面积」
文章目录
- 题目
- 分析
- 实现
题目
在 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体。
每个值v = grid[i][j]
表示 v 个正方体叠放在单元格 (i, j) 上。
现在,我们查看这些立方体在 xy 、yz 和 zx 平面上的投影。
投影就像影子,将三维形体映射到一个二维平面上。从顶部、前面和侧面看立方体时,我们会看到“影子”。
返回所有三个投影的总面积 。
示例1:
- 输入:[[1,2],[3,4]]
- 输出:17
- 解释:这里有该形体在三个轴对齐平面上的三个投影(“阴影部分”)。
示例2:
- 输入:grid = [[2]]
- 输出:5
示例3:
- 输入:[[1,0],[0,2]]
- 输出:8
提示:
- n == grid.length == grid[i].length
- 1 <= n <= 50
- 0 <= grid[i][j] <= 50
题目来源:LeetCode
分析
其实就是要计算三个投影面的总面积。对于水平面(xy面),只要对每一个位置(元素)叠放的方块不为空就会留下阴影,即面积+1。
对于正面(yz面),对每一行y方向,取最高的作为每一行正面的投影面积,全部y方向的行的总投影,即为正面的投影面积。
对于测面(xz面),对每一行x方向,取最高的作为每一行侧面的投影面积,全部x方向的行的总投影,即为侧面的投影面积。
实现
package com.chenpi.no0883ProjectionArea;/*** @author 陈皮* @version 1.0* @description* @date 2022/4/26*/
public class No0883ProjectionArea {public static void main(String[] args) {No0883ProjectionArea inst = new No0883ProjectionArea();
// int[][] grid = {{1, 2}, {3, 4}};int[][] grid = {{2}};
// int[][] grid = {{1, 0}, {0, 2}};System.out.println(inst.projectionArea(grid));}public int projectionArea(int[][] grid) {int area = 0;for (int i = 0; i < grid.length; i++) {int xMax = 0;int yMax = 0;for (int j = 0; j < grid[i].length; j++) {// 计算水平面(xy)的阴影,只要在此位置叠放的方块不为空就会留下阴影area += grid[i][j] > 0 ? 1 : 0;// 对每一行y方向,取最高的作为侧面的投影面积xMax = Math.max(xMax, grid[i][j]);// 对每一行x方向,取最高的作为正面的投影面积yMax = Math.max(yMax, grid[j][i]);}area += xMax;area += yMax;}return area;}
}// 输出结果如下
5
Leetcode 执行结果:
本次分享到此结束啦~~
如果觉得文章对你有帮助,点赞、收藏、关注、评论,您的支持就是我创作最大的动力!
LeetCode 0883「三维形体投影面积」相关推荐
- 【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) 上. ...
- LeetCode刷题之883. 三维形体投影面积
LeetCode刷题之883. 三维形体投影面积 我不知道将去向何方,但我已在路上! 时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! 题目: 在N*N的网格中,我们放置了一些与 ...
- LeetCode 887. 三维形体投影面积
887. 三维形体投影面积 在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i ...
- LeetCode 883. 三维形体投影面积(数学)
文章目录 题目 方法:数学 题目 883. 三维形体投影面积 方法:数学 xyxyxy 平面的投影面积等于网格上非零数值的数目 yz\texttt{yz}yz 平面的投影面积等于网格上每一列最大数值之 ...
- #力扣LeetCode883. 三维形体投影面积 @FDDLC
题目描述: 883. 三维形体投影面积 - 力扣(LeetCode) (leetcode-cn.com) Java代码: class Solution {public int projectionAr ...
- 力扣——883. 三维形体投影面积(Java、JavaScript、C实现)
三维形体投影面积 在 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 ( ...
- LeetCode(883)——三维形体投影面积(JavaScript)
在 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 ...
最新文章
- MNIST数据集合在PaddlePaddle环境下使用简单神经网络识别效果
- jQuery 表格插件
- java读文件几种方式_java中读取文件的方式有哪几种
- Unity 使物体朝向某个方位
- mysql悲观锁隔离级别_mysql隔离级别与悲观锁、乐观锁
- Atitit 艾提拉音频资源列表与统计 t6 六月份战果与7月份规划.docx 目录 1. 第一层次 原始资源类 采集资源类	1 1.1. K歌类采集资源 整理	1 1.2. K歌类资源初步分类
- python数据分析房价预测_Kaggle入门级赛题:房价预测——数据分析篇
- 单细胞测序原理10X UMI Barcode
- prevent to do sth 与 prevent sb (from) doing 用法
- Xtrabackup 数据备份工具使用方法
- android开发教程 电驴资源下载地址分享
- 只道情深,奈何缘浅!
- gan 的要点 (弱点与改进、推土距离)
- P6-Vue3后台管理系统-构建业务组件连通公共组件
- 教师计算机课游戏教学设计,《有趣的游戏》教学设计5篇
- 衍生品市场众生相:风险释放、高波动率、低信心、空头平仓 | TokenInsight
- Python+AI让静态图片动起来
- 如何获取网站字体,网站字体获取方法,网页设计字体获取,网页字体提取方法,获取网站ttf,otf,eot,woff,woff2,dfont,paf,ptb,ps,pas,t42,t11,svg字体文件
- Windows平台的原始套接字编程的知识点概要(备忘)
- remote app tool实现远程连接应用程序
热门文章
- 我把它当副业月入3万多,新手月入过万的干货分享!
- linux下c/c++读取txt文件,多行文件,且每行都用逗号隔开
- 基于android的智能照明,一种基于Android、IOS与ZigBee的智能LED照明控制系统的制作方法...
- golang学习笔记-1
- HTML期末作业课程设计期末大作业——电影网页制作
- 为什么C++可以重载函数
- 应用服务打车应用生死未卜 嘀嘀或傍上腾讯
- 【OBS】Dropped Frames And General Connection Issues
- 漫画:二叉树系列 第七讲(完全二叉树的节点个数)
- 如何从后台传数据到前台显示