此博客链接:
三维形体的表面积
在 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
题解:
题意:题目真是看了好长时间才看懂题目。题目给的数不是坐标位置,给的是坐标位置上的正方形的个数。
grid 是一个二维数组,grid[i]中描述了若干个高度不一的立方体,这些立方体由边长为1x1x1堆叠而成。
grid=[[2]]的意思是在x=0,y=0处的长方体由2个立方体堆叠而成,高度为2,表面积就是2*6-2=10
grid=[[1,2],[3,4]]意思是
在x=0,y=0处的长方体由1个立方体堆叠而成,高度为1,表面积就是1x6=6
在x=0,y=1处的长方体由2个立方体堆叠而成,高度为2,表面积就是2x6-2=10,合计总面积=10+6-2=14,要减掉重叠的面积,1x2=2。
在x=1,y=0处的长方体由3个立方体堆叠而成,高度为3,表面积就是3x6-2x2=14,合计总面积=10+6+14-2-4=24,要减掉重叠的面积,2x2=4。
在x=1,y=1处的长方体由4个立方体堆叠而成,高度为4,表面积就是4x6-2x3=18,合计总面积=18+10+6+14-2-4-2-6=34,要减掉重叠的面积,3x2=6,1x2=2。
为啥坐标是从(0,0),(0,1),(1,0),(1,1)开始的,我也不知道为啥。
方法:总面积减去重合面积。
思路:
计算一共有多少个正方形,每个正方形都有6个面,假设有N个正方形,一共有6*N个面,但是需要去掉重合的面,重合面积分两种情况:
1.当正方形和右边的正方形重合。
2.当正方形和下面的正方形重合。
每有正方形重合就会减少两个面,所以正方形表面积等于N*6-重合面积*2。
说明:第一个(0,0)位置的正方形在N*N网格的左上角。
代码:
标签:10,表面积,三维,重合,堆叠,正方形,形体,立方体 来源: https://www.cnblogs.com/ping2yingshi/p/12569009.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。