在 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

思路:按每个格子的每个方向的面,计算露出多少面积即可。考虑对应表面在边缘的情况。

class Solution {public int surfaceArea(int[][] grid) {int sum=0;for(int i=0;i<grid.length;i++){for(int j=0;j<grid[0].length;j++){sum+=help(i,j,grid);}}return sum;}public int help(int x,int y,int[][] grid){int target=grid[x][y];int a=x>0? (Math.max(0,target-grid[x-1][y])) :target;int b=y<grid[0].length-1? (Math.max(0,target-grid[x][y+1])) :target;int c=x<grid.length-1? (Math.max(0,target-grid[x+1][y])) :target;int d=y>0? (Math.max(0,target-grid[x][y-1])) :target;int f=target>0?2:0;return a+b+c+d+f;}
}

leetcode892. 三维形体的表面积相关推荐

  1. Leetcode-892. 三维形体的表面积

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

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

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

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

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

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

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

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

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

  6. LeetCode 三维形体的表面积

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

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

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

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

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

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

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

最新文章

  1. 【转载】Python的运行原理(编译过程及执行原理)
  2. Matlab计算两集合间的海明距离
  3. MySQL INT、TINYINT、SMALLINT、MEDIUMINT、BIGINT(整数类型)
  4. Vue-route路由的嵌套使用
  5. MobileSpace-关于我的激情的故事
  6. 【Spring 】启动报错 LoggerFactory is not a Logback LoggerContext but Logback...
  7. vue-webpack项目本地开发环境设置代理解决跨域问题
  8. java学习笔记(五)集合
  9. 中文文本纠错算法实现
  10. 原子结构示意图全部_所有原子结构示意图(1-118)最新元素周期表.pdf
  11. 超定方程组及其求解方法
  12. 2021年末爆发 Log4j 的史诗级Bug漏洞?5分钟教你如何手把手实现
  13. python 微信图文消息接口_用Python实现微信公众号API素材库图文消息抓取
  14. 语法歧义现象(一):牛津逗号(Oxford Comma)
  15. 阿里巴巴社招笔试题——多线程打印(2)
  16. win7 64位 SEC S3C2410X Test B/D安装
  17. “创享杯”第一届电子数据取证线上大比武答案(自做)
  18. cat3速度 rj45_常用RJ45网线的规格及型号总结
  19. Uderstanding and using Pointers 读书笔记
  20. DPR300 超声波高压脉冲发生/接收器

热门文章

  1. python webviewer爬虫_爬虫再也不怕检测浏览器环境了
  2. matlab 0-100随机数,添加到100的随机数:matlab
  3. java gc回收算法_Java GC回收算法-判定一个对象是否可以回收
  4. 六西格玛dfss_六西格玛系列知识之二:六西格玛管理的基本原理
  5. ubuntu 远程桌面
  6. Boost.Python实现Python C/C++混合编程
  7. [UE4]性能优化指南(程序向)
  8. 解密ControlRotation与ActorRotation
  9. 如何查看Linux版本号(内核版本号和发行版本号)
  10. 发一个自己写的2440驱动1602的资料(电路+代码)