#892. 三维形体的表面积
题目描述
解题思路
1、减法思路
这个题看了好久才看明白题目意思,比如[[2]]意思是在11的网格内放了一个小正方体,[[1,2][3,4]]意思是在22的网格里面,(0,0)位置放了1个正方体,(0,1)位置放了两个,(1,1)位置放了4个。有加法思路和减法思路,我一开始想到的就是减法思路,感觉减法比较直观好理解。每个相邻小方块消耗掉了两个单位的面积,相邻面数就是小方块个数里面较小的那个,引用评论里面一个图。
public int surfaceArea(int[][] grid) {
int num = 0,near = 0,n = grid.length;
for (int i = 0; i < n ; i++) {
for (int j = 0; j < n; j++) {
num += grid[i][j]; //num记录总方块数
if (j < n-1) near += Math
near = Math.min(grid[i][j],grid[i][j+1]); //near得到相邻的面数
if