1
class Solution {
2
public int surfaceArea(int[][] grid) {
3
int area = 0;
4
int n = grid.length;
5
for (int i = 0; i < n; i++) {
6
for (int j = 0; j < n; j++) {
7

8
// Adding the top part of grid
9
if (i == 0) area += grid[i][j];
10
else area += Math.abs(grid[i][j] - grid[i - 1][j]);
11

12
// Adding the left part of grid
13
if (j == 0) area += grid[i][j];
14
else area += Math.abs(grid[i][j] - grid[i][j - 1]);
15

16
// Adding bottom part of bottom-most cubes
17
if (i == n - 1) area += grid[i][j];
18

19
// Adding right part for right-most cubes
20
if (j == n - 1) area += grid[i][j];
21

22
// Add top and bottom surfaces if there is no hole in grid
23
if (grid[i][j] != 0) area += 2;
24
}
25
}
26
return area;
27
}
28
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0