Leetcode PHP题解--D65 892. Surface Area of 3D Shapes
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相关推荐
- python计算长方体的表面积公式_892.leetcode题目讲解(Python):三维形体的表面积(Surface Area of 3D Shapes)...
题目 题目 解题思路 解这道题的思路为,首先获取一个坐标点长方体的表面积,计算公式如下: surface = grid[i][j] * 4 + 2 然后减去其 "上.下.左.右" ...
- C#LeetCode刷题之#892-三维形体的表面积(Surface Area of 3D Shapes)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4136 访问. 在 N * N 的网格上,我们放置一些 1 * 1 ...
- 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) 上. ...
- Leetcode883.Projection Area of 3D Shapes三维形体投影面积
在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体. 每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上. 现在,我们查 ...
- 光线求交加速算法:边界体积层次结构(Bounding Volume Hierarchies)2-表面积启发式法(The Surface Area Heuristic)
光线求交加速算法:边界体积层次结构(Bounding Volume Hierarchies)2 上篇的两种图元分区方法(Middle,EqualCounts)对于某些图元分布可以很好地工作,但是在实践 ...
- LeetCode/LintCode 题解丨一周爆刷字符串:URL 编码
描述 给出一个代表网址 host 的字符串 base_url,和代表查询参数的列表 query_params_list,你需要返回带查询参数的完整 URL. 查询参数列表由一些包含两个元素的数组组成, ...
- LeetCode/LintCode 题解丨一周爆刷双指针:最小范围
描述 有k个升序排列的数组,寻找一个最小范围,使每个数组中至少有一个元素被包含. 范围[a,b]比范围[c,d]小,当且仅当b-a < d-c,或是a < c且b-a == d-c. 给定 ...
- LeetCode/LintCode 题解丨一周爆刷字符串:简化路径
描述 给定一个文件的绝对路径(Unix-style),请进行路径简化. Unix中, . 表示当前目录, - 表示父目录. 结果必须以 / 开头,并且两个目录名之间有且只有一个 /.最后一个目录名(如 ...
- LeetCode/LintCode 题解丨一周爆刷字符串:神奇字符串
描述 一个神奇字符串S仅包含'1'和'2',并遵守以下规则: 字符串S是神奇的,因为连接字符'1'和'2'的连续出现次数会产生字符串S本身. 字符串S的前几个元素如下:S = "122112 ...
最新文章
- 牛客网数据开发题库_练习SQL利器,牛客网SQL实战题库
- admm算法_「优化」交替方向乘子法(ADMM)的基本原理
- optee的fast call的介绍
- python的运算顺序和c一样吗,【Python】Python 对比 C语言的差异
- edittext无法获取焦点_小黑鞋强势回归,用帅气拉回时尚焦点
- python echarts mysql python_Django中从mysql数据库中获取数据传到echarts方式
- 使用OpenSSL工具制作X.509证书的方法及其注意事项总结
- java # 折叠_如何在Java中实现列表折叠
- 1157 全是1的最大子矩阵
- 机器闹乌龙?Amphetamine 险遭苹果下架
- Timer的schedule和scheduleAtFixedRate方法的区别解析(转)
- POJ 1716 Integer Intervals
- scala编程第16章学习笔记(3)——List类的高阶方法
- Facebook vs Chrome 关公秦琼的未来之战,互联网营销
- [Bzoj1009][HNOI2008]GT考试(动态规划)
- LED背光源具的优势
- ArcGIS如何画中国地图
- MonthCalendar显示该年的12个月份
- 慢品国学---“人皆有不忍之心“
- 1-8代酷睿全部中招,英特尔处理器再曝漏洞