专业网站制作设计公司哪家好,贵阳seo技术,福田搭建网站费用,网站开发费用的会计分录在 N * N 的网格上#xff0c;我们放置一些 1 * 1 * 1 的立方体。
每个值 v grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上。
请你返回最终形体的表面积。
示例 1#xff1a;
输入#xff1a;[[2]] 输出#xff1a;10 示例 2#xff1a;
输入#xff1a;…在 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
提示
1 N 50 0 grid[i][j] 50
思路按每个格子的每个方向的面计算露出多少面积即可。考虑对应表面在边缘的情况。
class Solution {public int surfaceArea(int[][] grid) {int sum0;for(int i0;igrid.length;i){for(int j0;jgrid[0].length;j){sumhelp(i,j,grid);}}return sum;}public int help(int x,int y,int[][] grid){int targetgrid[x][y];int ax0? (Math.max(0,target-grid[x-1][y])) :target;int bygrid[0].length-1? (Math.max(0,target-grid[x][y1])) :target;int cxgrid.length-1? (Math.max(0,target-grid[x1][y])) :target;int dy0? (Math.max(0,target-grid[x][y-1])) :target;int ftarget0?2:0;return abcdf;}
}