多语言展示
当前在线:537今日阅读:168今日分享:49

Java详解如何计算三维形体的表面积

题目:在 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位)的效果。

推荐信息