题目:在 n * n 的网格 grid 上,放置一些 1 * 1 * 1 的立方体,其中每个值 grid[i][j] 表示在对应单元格上垂直叠放的立方体的数量,整体上这些立方体会构成一个不规则的三维形体。实现一个算法,计算这个三维形体的表面积。
工具/原料
1
Eclipse
2
JDK1.8
方法/步骤
1
实现算法,思想如下:1. 遍历每个单元格的垂直立方体,先累加该立方体的表面积;2. 减去该立方体和左侧立方体重合部分的表面积;3. 减去该立方体和上方立方体重合部分的表面积。
2
编写本地测试主方法。
3
运行本地测试主方法,观察控制台输出,符合预期,本地测试通过。
4
平台提交算法,测试通过。
5
算法复杂度分析:需要嵌套循环遍历该二维数组,因此时间复杂度为 O(n*m) ,其中 n 为二维数组的行数,m为二维数组的列数;算法没有借助额外空间辅助运算,因此空间复杂度为 O(1)。
注意事项
算法通过位运算实现乘以2(左移1位)和乘以4(左移2位)的效果。
上一篇:CSS怎么消失的边界线?
下一篇:DKLD-H精密露点仪使用说明书