力扣——883. 三维形体投影面积(Java、JavaScript、C实现)
- 三维形体投影面积
在 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实现)相关推荐
- #力扣LeetCode883. 三维形体投影面积 @FDDLC
题目描述: 883. 三维形体投影面积 - 力扣(LeetCode) (leetcode-cn.com) Java代码: class Solution {public int projectionAr ...
- LeetCode 883. 三维形体投影面积(数学)
文章目录 题目 方法:数学 题目 883. 三维形体投影面积 方法:数学 xyxyxy 平面的投影面积等于网格上非零数值的数目 yz\texttt{yz}yz 平面的投影面积等于网格上每一列最大数值之 ...
- LeetCode刷题之883. 三维形体投影面积
LeetCode刷题之883. 三维形体投影面积 我不知道将去向何方,但我已在路上! 时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! 题目: 在N*N的网格中,我们放置了一些与 ...
- 883.三维形体投影面积
在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上. 现在,我们查 ...
- 【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) 上. 现在 ...
- LeetCode(883)——三维形体投影面积(JavaScript)
在 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) 上. 现在,我们查 ...
- LeetCode——883. 三维形体投影面积
文章目录 题目描述 答案 我的答案 官方答案 数学 题目描述 在 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体. 每个值 v = grid[i ...
最新文章
- Errors occurred during the build. Errors running builder 'DeploymentBuilder' on project 'drp2.8'. ja
- Java不满足的依赖异常_不要依赖代码中的异常
- ETDM:基于显式时间差分建模的视频超分辨率(CVPR 2022)
- STL之inner_product
- BI的需求调研的方法分类
- php设计模式课程---9、桥接模式是什么
- PyTorch 靠谱的模型可视化教程
- python万能头文件_c++的‘万能头文件’真的万能吗?
- 计算机硬件报警声音,电脑开机报警声音大全详解及处理
- dns服务器不正确,DNS服务器怎么设置?dns错误怎么办?
- 我的小游戏上线海外AppStore完整流程心得
- 移动开发中一些bug及解决方案
- 【数学建模 | 快速入门(上)】笔记----(P1-P8)
- 关于Android项目中的Toast那些动画实现方式
- 算法的基本概念及特性(有穷性、确定性、可行性、输入和输出)
- 【博学谷学习记录】超强总结,用心分享 | Java入门级基础概述
- CSDN通过哪些方法获取积分
- 408考研大纲计算机网络,2021计算机考研408大纲:计算机网络部分解析及备考指导...
- zemax---中英文名词对照表(持续更新中)
- 【科技百咖】30年专注网络安全,江民科技不止是杀毒
热门文章
- 伪类选择器和伪元素选择器
- 2013 11 24电脑操作
- 0.1元成本柿饼派实现红外控制空调了
- 见证历史 -- 2013 NBA 热火夺冠之路有感
- Couldn't read row 0, col 0 from CursorWindow. Make sure the Cursor is initia
- Java8-Stream流整合(1)
- [附源码]计算机毕业设计JAVA宠物寻回系统
- linux php验证码,openwrt路由器搭建PHP并用PHP识别验证码
- 7-3 学习打卡(12.26)
- Python练习14:天天向上的力量I