问题

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/4136 访问。

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

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

返回结果形体的总表面积。

输入:[[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

On a N * N grid, we place some 1 * 1 * 1 cubes.

Each value v = grid[i][j] represents a tower of v cubes placed on top of grid cell (i, j).

Return the total surface area of the resulting shapes.

Input: [[2]]
Output: 10
Example 2:

Input: [[1,2],[3,4]]
Output: 34
Example 3:

Input: [[1,0],[0,2]]
Output: 16
Example 4:

Input: [[1,1,1],[1,0,1],[1,1,1]]
Output: 32
Example 5:

Input: [[2,2,2],[2,1,2],[2,2,2]]
Output: 46

Note:

  • 1 <= N <= 50
  • 0 <= grid[i][j] <= 50

示例

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/4136 访问。

public class Program {public static void Main(string[] args) {var grid = new int[][] { new int[] { 2 } };var res = SurfaceArea(grid);Console.WriteLine(res);Console.ReadKey();}public static int SurfaceArea(int[][] grid) {var res = 0;for(var i = 0; i < grid.Length; i++)for(var j = 0; j < grid[0].Length; j++) {if(grid[i][j] > 0)//若有立方体,总的表面积为立方体的 4 个边加上下底res += 4 * grid[i][j] + 2;if(i < grid.Length - 1)//若在 x 轴上,不是 x 轴上的最后一个//那么减去它们重叠的部分 * 2res -= Math.Min(grid[i][j], grid[i + 1][j]) * 2;if(j < grid[0].Length - 1)//若在 y 轴上,不是 y 轴上的最后一个//那么减去它们重叠的部分 * 2res -= Math.Min(grid[i][j], grid[i][j + 1]) * 2;}return res;}}

以上给出1种算法实现,以下是这个案例的输出结果:

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 https://www.byteflying.com/archives/4136 访问。

10

分析:

显而易见,以上算法的时间复杂度为:  。

C#LeetCode刷题之#892-三维形体的表面积(Surface Area of 3D Shapes)相关推荐

  1. python计算长方体的表面积公式_892.leetcode题目讲解(Python):三维形体的表面积(Surface Area of 3D Shapes)...

    题目 题目 解题思路 解这道题的思路为,首先获取一个坐标点长方体的表面积,计算公式如下: surface = grid[i][j] * 4 + 2 然后减去其 "上.下.左.右" ...

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

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

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

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

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

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

  5. Leetcode PHP题解--D65 892. Surface Area of 3D Shapes

    2019独角兽企业重金招聘Python工程师标准>>> D65 892. Surface Area of 3D Shapes 题目链接 892. Surface Area of 3D ...

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

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

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

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

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

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

  9. C#LeetCode刷题-几何

    几何篇 # 题名 刷题 通过率 难度 587 安装栅栏 21.5% 困难 892 三维形体的表面积 C#LeetCode刷题之#892-三维形体的表面积(Surface Area of 3D Shap ...

最新文章

  1. 用python的turtle画圆-Python turtle 绘图画圆
  2. 5.16 12周第二课
  3. 图解SQLite教程
  4. 论文阅读课5-DocRED: A Large-Scale Document-Level Relation Extraction Dataset(大规模文档集关系提取数据集
  5. 十年测试之路的笔记分享
  6. c++ primer plus 内存模型和名称空间
  7. 新浪、腾讯微博开放平台非标准oauth解析
  8. sdformatter格式化选项设置_教大家sdformatter如何进行sd卡低级格式化
  9. 计算机软件编程英语词汇集锦一
  10. 移动硬盘插入提示需要格式化RAW_移动硬盘数据恢复 – 图文教程
  11. win7浏览器主页修改不过来_ie主页被锁定无法修改怎么办?ghost win7 ie主页修改不了的两种解决方法...
  12. 远程控制桌面计算机怎么填写,远程控制电脑桌面如何操作【图解】
  13. MySQL:查询每个部门的员工小时平均工资(显示部门名称、部门员工小时平均 工资)
  14. 科研 | 心理学在线科研历史,你真的了解它吗?
  15. 杰理之NLP 参数【篇】
  16. python格式化字符_Python格式化字符串
  17. Python 里最强的地图绘制神器
  18. mysql弱口令是什么意思_MYSQL用户root密码为弱口令又一攻击方法
  19. 风控中所涉及的重要指标全解析
  20. 想让AI变现?这六大市场营销场景不容忽视

热门文章

  1. oracle execute immediate用法
  2. 忘记mysql的root密码后,修改密码
  3. 【AI视野·今日NLP 自然语言处理论文速览 第十一期】Mon, 21 Jun 2021
  4. django-中间件的执行流程
  5. python-函数的闭包
  6. JavaScript高级程序设计(第三版)学习笔记22、24、25章
  7. win8 任务栏不合并隐藏标题
  8. mac os x 10.8 安装python-mysqldb
  9. 你们公司还没使用HTTP3?赶紧来补一补,学习一下如何在Nginx上配置HTTP3。
  10. 还没使用过Web Worker? 推荐一款开源工具Workerize-Loader,让你在webpack项目中轻松使用Web Worker