文章目录

  • 题目
  • 分析
  • 实现

题目

在 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「三维形体投影面积」相关推荐

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

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

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

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

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

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

  4. LeetCode 887. 三维形体投影面积

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

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

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

  6. #力扣LeetCode883. 三维形体投影面积 @FDDLC

    题目描述: 883. 三维形体投影面积 - 力扣(LeetCode) (leetcode-cn.com) Java代码: class Solution {public int projectionAr ...

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

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

  8. LeetCode(883)——三维形体投影面积(JavaScript)

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

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

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

最新文章

  1. MNIST数据集合在PaddlePaddle环境下使用简单神经网络识别效果
  2. jQuery 表格插件
  3. java读文件几种方式_java中读取文件的方式有哪几种
  4. Unity 使物体朝向某个方位
  5. mysql悲观锁隔离级别_mysql隔离级别与悲观锁、乐观锁
  6. Atitit 艾提拉音频资源列表与统计 t6 六月份战果与7月份规划.docx 目录 1. 第一层次 原始资源类 采集资源类 1 1.1. K歌类采集资源 整理 1 1.2. K歌类资源初步分类
  7. python数据分析房价预测_Kaggle入门级赛题:房价预测——数据分析篇
  8. 单细胞测序原理10X UMI Barcode
  9. prevent to do sth 与 prevent sb (from) doing 用法
  10. Xtrabackup 数据备份工具使用方法
  11. android开发教程 电驴资源下载地址分享
  12. 只道情深,奈何缘浅!
  13. gan 的要点 (弱点与改进、推土距离)
  14. P6-Vue3后台管理系统-构建业务组件连通公共组件
  15. 教师计算机课游戏教学设计,《有趣的游戏》教学设计5篇
  16. 衍生品市场众生相:风险释放、高波动率、低信心、空头平仓 | TokenInsight
  17. Python+AI让静态图片动起来
  18. 如何获取网站字体,网站字体获取方法,网页设计字体获取,网页字体提取方法,获取网站ttf,otf,eot,woff,woff2,dfont,paf,ptb,ps,pas,t42,t11,svg字体文件
  19. Windows平台的原始套接字编程的知识点概要(备忘)
  20. remote app tool实现远程连接应用程序

热门文章

  1. 我把它当副业月入3万多,新手月入过万的干货分享!
  2. linux下c/c++读取txt文件,多行文件,且每行都用逗号隔开
  3. 基于android的智能照明,一种基于Android、IOS与ZigBee的智能LED照明控制系统的制作方法...
  4. golang学习笔记-1
  5. HTML期末作业课程设计期末大作业——电影网页制作
  6. 为什么C++可以重载函数
  7. 应用服务打车应用生死未卜 嘀嘀或傍上腾讯
  8. 【OBS】Dropped Frames And General Connection Issues
  9. 漫画:二叉树系列 第七讲(完全二叉树的节点个数)
  10. 如何从后台传数据到前台显示