N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体。

每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上。

请你返回最终形体的表面积。

示例1:
输入:[[2]]
输出:10

示例2:
输入:[[1,2],[3,4]]
输出:34

示例3:
输入:[[1,0],[0,2]]
输出:16

示例4:
输入:[[1,1,1],[1,0,1],[1,1,1]]
输出:32

示例5:
输入:[[2,2,2],[2,1,2],[2,2,2]]
输出:46

提示:

  • 1 <= N <= 50
  • 0 <= grid[i][j] <= 50
/*** @param {number[][]} grid* @return {number}*/
var surfaceArea = function(grid) {};

个人解法

var surfaceArea = function(grid) {var result = 0;grid.forEach(element => {element.forEach(element2 => {//遍历每个位置,每个立方体表面积加6result += (element2 * 6);//如果某个位置有大于一个的立方体,那么它上下重叠表面积减2if(element2 > 1){result -= ((element2 - 1) * 2);}});});  //对x轴方向重叠的立方体,表面积减去最少立方体*2,比如三个立方体跟两个立方体相邻,那么表面积则要减去4for(var i = 0; i < grid.length; i++){for(var j = 0; j < grid[i].length - 1; j++){result -= (grid[i][j] > grid[i][j + 1] ? grid[i][j + 1] * 2 : grid[i][j] * 2);}}//遍历y轴方向重叠的立方体for(var i = 0; i < grid[0].length; i++){for(var j = 0; j < grid.length - 1; j++){result -= (grid[j][i] > grid[j + 1][i] ? grid[j + 1][i] * 2 : grid[j][i] * 2);}}return result;
};

LeetCode(892)——三维形体的表面积(JavaScript)相关推荐

  1. LeetCode:892. 三维形体的表面积

    892. 三维形体的表面积 题目: 解题思路: 源码: 踩坑点: 题目: 解题思路: 我们先来理解一下题意: [[1,2],[3,4]]就是一个二维数组A.A[i][j]表示每一个以单位正方形为底的空 ...

  2. LeetCode 892. 三维形体的表面积

    892. 三维形体的表面积 思路:每列的长方形体积为4*grid[i][j]+2,减去抵消掉的表面积 class Solution { public:int surfaceArea(vector< ...

  3. LeetCode 892. 三维形体的表面积(数学)

    1. 题目 在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上. 请你返回最终形体的表面 ...

  4. Leetcode:892. 三维形体的表面积(Java)

    在 N * N 的网格上,我们放置一些 1 * 1 * 1  的立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上. 请你返回最终形体的表面积. 示例 ...

  5. 力扣892.三维形体的表面积

    题目描述 在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上. 请你返回最终形体的表面积 ...

  6. LeetCode简单题之三维形体的表面积

    题目 给你一个 n * n 的网格 grid ,上面放置着一些 1 x 1 x 1 的正方体.每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上. 放置好正方体 ...

  7. LeetCode 三维形体的表面积

    在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上. 请你返回最终形体的表面积. 示例 ...

  8. python求球的表面积_892. 三维形体的表面积(Python)

    题目 难度:★★☆☆☆ 类型:几何.数学.二维数组 在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, ...

  9. 883. 三维形体投影面积(javascript)883. Projection Area of 3D Shapes

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

最新文章

  1. 深度学习(7)卷积神经网络
  2. java轻量级并行工具类_16 个超级实用的 Java 工具类
  3. C++静态库与动态库(简介)
  4. P1605 迷宫 dfs回溯法
  5. html 下拉列表美化,JS+CSS实现美化的下拉列表框效果
  6. java开发汉字显示不全_求java转码ISO-8859-1转UTF-8汉字显示不全补救方案?
  7. 《程序是怎样跑起来的》读书笔记——第三章 计算机进行小数运算时出错的原因...
  8. Stanford机器学习---第六讲. 怎样选择机器学习方法、系统
  9. armeabi armeabi-v7a mips x86 理解
  10. 一个完美网站的101项指标.第二部分.内容为王
  11. 删除有TrustedInstaller权限的文件-亲测有效
  12. 白帽黑客获 5 万美元赏金!只因利用漏洞控制所有特斯拉汽车
  13. java 下载文件的文件名乱码_JAVA 文件下载时的文件名乱码解决
  14. STM32CubeMX学习笔记(5)——基本定时器接口使用
  15. 爬取堆糖蜜桃猫图片并下载到本地
  16. 股票每天最高最低价的黄金分割线买卖点标记
  17. 开启 QQ 邮箱 POP3, SMTP 服务和获取服务授权码(密码)
  18. npm adduser 和 npm publish 的踩坑
  19. 团队使我成长,学习使我快乐
  20. adb命令删除apk,不止是uninstall,卸载内置的app方法

热门文章

  1. Data Source与数据库连接池简介 JDBC简介(八)
  2. Python笔记9-----不等长列表转化成DataFrame
  3. 大数据技术存在局限 经验直觉不可或缺
  4. 9.20 模拟试题
  5. centos杀死进程命令
  6. python map方法
  7. bzoj15523506 robotic sort
  8. 今天在webcasts上看sql server 2008的新功能介绍,无意中发现在连接sql server 数据库时,还有一个...
  9. Getting Contexts 获得上下文
  10. VS2008无法正确打开项目/解决方案