问题

该文章的最新版本已迁移至个人博客【比特飞】,单击链接 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 轴上的最后一个
//那么减去它们重叠的部分 * 2
res -= Math.Min(grid[i][j], grid[i + 1][j]) * 2;
if(j < grid[0].Length - 1)
//若在 y 轴上,不是 y 轴上的最后一个
//那么减去它们重叠的部分 * 2
res -= 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. [Swift]LeetCode892. 三维形体的表面积 | Surface Area of 3D Shapes

    On a N * N grid, we place some 1 * 1 * 1 cubes. Each value v = grid[i][j] represents a tower of v cu ...

  2. [Swift]LeetCode883. 三维形体投影面积 | Projection Area of 3D Shapes

    On a N * N grid, we place some 1 * 1 * 1 cubes that are axis-aligned with the x, y, and z axes. Each ...

  3. 【Leetcode_easy】892. Surface Area of 3D Shapes

    problem 892. Surface Area of 3D Shapes 题意:感觉不清楚立方体是如何堆积的,所以也不清楚立方体之间是如何combine的.. Essentially, compu ...

  4. leetcode签到 892. 三维形体的表面积

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

  5. [LeetCode] 892. Surface Area of 3D Shapes 三维物体的表面积

    On a N * N grid, we place some 1 * 1 * 1 cubes. Each value v = grid[i][j] represents a tower of v cu ...

  6. 【LeetCode】892. Surface Area of 3D Shapes 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  7. leetcode 892. 三维形体的表面积

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

  8. Leetcode892.Surface Area of 3D Shapes三维形体的表面积

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

  9. LeetCode 892 Surface Area of 3D Shapes 解题报告

    题目要求 On a N * N grid, we place some 1 * 1 * 1 cubes. Each value v = grid[i][j] represents a tower of ...

随机推荐

  1. 学会Markdown不仅可以用来编写文档,还可以制作自己的简历,真香!

    程序员的简历要简洁明了,不要太多花哨的修饰,突出重点即可,使用markdown就可以很好的满足写一份简历的需求 Markdown 简历模板 这里我贡献一下我自己的markdown简历模板,简历效果如下 ...

  2. dva + umi 学习笔记

    首先,这里的 dva + umi 不是说学习dva和umi,而是基于 dva + umi 的react前端开发脚手架,这是我的目标. 一开始,我在dva文档的例子里看到了 dva + umi 的例子. ...

  3. Python基础点记录1

    1 变量:一个变量就是一个单词,只有一个单一的值 1 Python里面的数据类型 interage , floats , booleans , String等 2 Python是一个区分大小写的语言 ...

  4. django 学习记录(一)

    不使用 drf 来实现django 的 api 接口 json序列化 from django.shortcuts import render from django.views.generic.bas ...

  5. 性能测试必备知识(6)- 如何查看“CPU 上下文切换”

    做性能测试的必备知识系列,可以看下面链接的文章哦 https://www.cnblogs.com/poloyy/category/1806772.html 课前准备,安装 sysbench 下载 sy ...

  6. SQL查询基本用法

    -- 单列查询 select 编号 from employees -- 多列查询 select 编号,姓名 from employees -- 查询所有列 select * from employee ...

  7. goroutine间的同步&协作

    Go语言中的同步工具 基础概念 竞态条件(race condition) 一份数据被多个线程共享,可能会产生争用和冲突的情况.这种情况被称为竞态条件,竞态条件会破坏共享数据的一致性,影响一些线程中代码 ...

  8. 一分钟速学 | NMS, IOU 与 SoftMax

    非极大抑制 NMS的英文是Non-maximum suppression的缩写. 简单的说,就是模型给出了多个重叠在一起的候选框,我们只需要保留一个就可以了.其他的重叠的候选框就删掉了,效果可见下图: ...

  9. sed在文本第一行和最后一行添加字符串

    shell在文本第一行和最后一行添加字符串 sed -i '1 i\ApiInterfaceName ResposeTime' /tmp/apiLog/apiLogFromatSecond.logse ...

  10. Explain关键字解析

    Explain 用法 explain模拟Mysql优化器是如何执行SQL查询语句的,从而知道Mysql是如何处理你的SQL语句的.分析你的查询语句或是表结构的性能瓶颈. 语法:Explain + SQ ...