1. 三维形体投影面积
    在 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



Java代码1:

class Solution {public int projectionArea(int[][] grid) {int n = grid.length;int xyArea = 0, yzArea = 0, zxArea = 0;for (int i = 0; i < n; i++) {int yzHeight = 0, zxHeight = 0;for (int j = 0; j < n; j++) {xyArea += grid[i][j] > 0 ? 1 : 0;yzHeight = Math.max(yzHeight, grid[j][i]);zxHeight = Math.max(zxHeight, grid[i][j]);}yzArea += yzHeight;zxArea += zxHeight;}return xyArea + yzArea + zxArea;}
}


Java代码2:

class Solution {public int projectionArea(int[][] grid) {int xy = 0, xz = 0, yz = 0;for(int[] g: grid) {int m = 0;for(int v: g) {m = Math.max(m, v);if(v > 0)xy++;}xz += m;}for(int col = 0; col < grid[0].length; col++) {int m = 0;for(int row = 0; row < grid.length; row++)m = Math.max(m, grid[row][col]);yz += m;}return xy + xz + yz;}
}


JavaScript代码:

/*** @param {number[][]} grid* @return {number}*/
var projectionArea = function(grid) {let ans = 0const n = grid.lengthfor (let i = 0; i < n; i ++) {let max1 = 0let max2 = 0for (let j = 0; j < n; j ++) {if (grid[i][j] > 0) {ans ++}max1 = Math.max(max1, grid[i][j])max2 = Math.max(max2, grid[j][i])}ans += max1ans += max2}return ans
};


C代码:

int projectionArea(int** grid, int gridSize, int* gridColSize){int sum=0;int colNum=0;for(int i=0;i<gridSize;i++){colNum=fmax(colNum,gridColSize[i]);}int rowmax;for(int i=0;i<gridSize;i++ ){rowmax=0;for(int j=0;j<gridColSize[i];j++){if(grid[i][j]!=0){rowmax=fmax(rowmax,grid[i][j]);sum++;}}sum+=rowmax;}for(int i=0;i<colNum;i++ ){rowmax=0;for(int j=0;j<gridSize;j++){if(gridColSize[j]>i){rowmax=fmax(rowmax,grid[j][i]);}}sum+=rowmax;}return sum;
}


作者:KJ.JK
本文仅用于交流学习,未经作者允许,禁止转载,更勿做其他用途,违者必究。
文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习

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

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

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

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

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

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

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

  4. 883.三维形体投影面积

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

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

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

  6. 力扣883.三维体投影面积

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

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

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

  8. 883. 三维形体投影面积

    在 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. Errors occurred during the build. Errors running builder 'DeploymentBuilder' on project 'drp2.8'. ja
  2. Java不满足的依赖异常_不要依赖代码中的异常
  3. ETDM:基于显式时间差分建模的视频超分辨率(CVPR 2022)
  4. STL之inner_product
  5. BI的需求调研的方法分类
  6. php设计模式课程---9、桥接模式是什么
  7. PyTorch 靠谱的模型可视化教程
  8. python万能头文件_c++的‘万能头文件’真的万能吗?
  9. 计算机硬件报警声音,电脑开机报警声音大全详解及处理
  10. dns服务器不正确,DNS服务器怎么设置?dns错误怎么办?
  11. 我的小游戏上线海外AppStore完整流程心得
  12. 移动开发中一些bug及解决方案
  13. 【数学建模 | 快速入门(上)】笔记----(P1-P8)
  14. 关于Android项目中的Toast那些动画实现方式
  15. 算法的基本概念及特性(有穷性、确定性、可行性、输入和输出)
  16. 【博学谷学习记录】超强总结,用心分享 | Java入门级基础概述
  17. CSDN通过哪些方法获取积分
  18. 408考研大纲计算机网络,2021计算机考研408大纲:计算机网络部分解析及备考指导...
  19. zemax---中英文名词对照表(持续更新中)
  20. 【科技百咖】30年专注网络安全,江民科技不止是杀毒

热门文章

  1. 伪类选择器和伪元素选择器
  2. 2013 11 24电脑操作
  3. 0.1元成本柿饼派实现红外控制空调了
  4. 见证历史 -- 2013 NBA 热火夺冠之路有感
  5. Couldn't read row 0, col 0 from CursorWindow. Make sure the Cursor is initia
  6. Java8-Stream流整合(1)
  7. [附源码]计算机毕业设计JAVA宠物寻回系统
  8. linux php验证码,openwrt路由器搭建PHP并用PHP识别验证码
  9. 7-3 学习打卡(12.26)
  10. Python练习14:天天向上的力量I