2019独角兽企业重金招聘Python工程师标准>>>

D65 892. Surface Area of 3D Shapes

题目链接

892. Surface Area of 3D Shapes

题目分析

给定一个三维数组,返回所行程柱状体的表面积。

思路

三维数组中,$arr[$i][$j]的值表示在该点上柱状体的高度。

因此,对每一个值,需要算做6份(1*1*1)的面积。但是,当上方或下方有块时,需要减去相应面积。
当相邻位置有方块时,需要减去相应表面积。当前柱体和相邻柱体都需要减去。但只减去两个柱体中,较矮的柱体的高度*2。
要记住,在两个方向上都需要做该判断。

最终代码

<?php
class Solution {/*** @param Integer[][] $grid* @return Integer*/function surfaceArea($grid) {$total = 0;$ys = count($grid);for($i = 0; $i<$ys; $i++){$xs = count($grid[$i]);for($j = 0; $j<$xs; $j++){$total += $grid[$i][$j]*4+2*($grid[$i][$j]!=0);if($i+1<$ys){$total -= min($grid[$i][$j],$grid[$i+1][$j])*2;}if($j+1<$ys){$total -= min($grid[$i][$j],$grid[$i][$j+1])*2;}}}return $total;}
}

若觉得本文章对你有用,欢迎用爱发电资助。

转载于:https://my.oschina.net/u/2246923/blog/3051304

Leetcode PHP题解--D65 892. Surface Area of 3D Shapes相关推荐

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

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

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

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4136 访问. 在 N * N 的网格上,我们放置一些 1 * 1 ...

  3. 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) 上. ...

  4. Leetcode883.Projection Area of 3D Shapes三维形体投影面积

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

  5. 光线求交加速算法:边界体积层次结构(Bounding Volume Hierarchies)2-表面积启发式法(The Surface Area Heuristic)

    光线求交加速算法:边界体积层次结构(Bounding Volume Hierarchies)2 上篇的两种图元分区方法(Middle,EqualCounts)对于某些图元分布可以很好地工作,但是在实践 ...

  6. LeetCode/LintCode 题解丨一周爆刷字符串:URL 编码

    描述 给出一个代表网址 host 的字符串 base_url,和代表查询参数的列表 query_params_list,你需要返回带查询参数的完整 URL. 查询参数列表由一些包含两个元素的数组组成, ...

  7. LeetCode/LintCode 题解丨一周爆刷双指针:最小范围

    描述 有k个升序排列的数组,寻找一个最小范围,使每个数组中至少有一个元素被包含. 范围[a,b]比范围[c,d]小,当且仅当b-a < d-c,或是a < c且b-a == d-c. 给定 ...

  8. LeetCode/LintCode 题解丨一周爆刷字符串:简化路径

    描述 给定一个文件的绝对路径(Unix-style),请进行路径简化. Unix中, . 表示当前目录, - 表示父目录. 结果必须以 / 开头,并且两个目录名之间有且只有一个 /.最后一个目录名(如 ...

  9. LeetCode/LintCode 题解丨一周爆刷字符串:神奇字符串

    描述 一个神奇字符串S仅包含'1'和'2',并遵守以下规则: 字符串S是神奇的,因为连接字符'1'和'2'的连续出现次数会产生字符串S本身. 字符串S的前几个元素如下:S = "122112 ...

最新文章

  1. 牛客网数据开发题库_练习SQL利器,牛客网SQL实战题库
  2. admm算法_「优化」交替方向乘子法(ADMM)的基本原理
  3. optee的fast call的介绍
  4. python的运算顺序和c一样吗,【Python】Python 对比 C语言的差异
  5. edittext无法获取焦点_小黑鞋强势回归,用帅气拉回时尚焦点
  6. python echarts mysql python_Django中从mysql数据库中获取数据传到echarts方式
  7. 使用OpenSSL工具制作X.509证书的方法及其注意事项总结
  8. java # 折叠_如何在Java中实现列表折叠
  9. 1157 全是1的最大子矩阵
  10. 机器闹乌龙?Amphetamine 险遭苹果下架
  11. Timer的schedule和scheduleAtFixedRate方法的区别解析(转)
  12. POJ 1716 Integer Intervals
  13. scala编程第16章学习笔记(3)——List类的高阶方法
  14. Facebook vs Chrome 关公秦琼的未来之战,互联网营销
  15. [Bzoj1009][HNOI2008]GT考试(动态规划)
  16. LED背光源具的优势
  17. ArcGIS如何画中国地图
  18. MonthCalendar显示该年的12个月份
  19. 慢品国学---“人皆有不忍之心“
  20. 1-8代酷睿全部中招,英特尔处理器再曝漏洞

热门文章

  1. 友友车友软件 android,友友车友模拟学车软件2018
  2. 福利| 一台电脑,双网卡,三个IP地址,如何同时工作
  3. 测试员如何参与需求评审?
  4. 史玉柱在赚谁的钱——《征途》与黄、白金搭档
  5. C语言+easyX界面库实现贪吃蛇
  6. [游戏] chrome 的小彩蛋
  7. visio移动形状 上下左右键 移动滚动条
  8. 99%的人没弄懂volatile的设计原理,更别说灵活运用了
  9. android 开发中不可不知的技巧
  10. cross,across,through,pass,做穿过时的区别