We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 512a00e commit e8b926eCopy full SHA for e8b926e
go/0463-island-perimeter.go
@@ -0,0 +1,29 @@
1
+func islandPerimeter(grid [][]int) int {
2
+ ROWS, COLS := len(grid), len(grid[0])
3
+ visit := make(map[int]bool)
4
+
5
+ var dfs func(int, int) int
6
+ dfs = func(i, j int) int {
7
+ if i >= ROWS || j >= COLS || i < 0 || j < 0 || grid[i][j] == 0 {
8
+ return 1
9
+ } else if visit[i*COLS + j] {
10
+ return 0
11
+ }
12
13
+ visit[i*COLS + j] = true
14
+ perim := dfs(i, j + 1)
15
+ perim += dfs(i + 1, j)
16
+ perim += dfs(i, j - 1)
17
+ perim += dfs(i - 1, j)
18
+ return perim
19
20
21
+ for i := 0; i < ROWS; i++ {
22
+ for j := 0; j < COLS; j++ {
23
+ if grid[i][j] != 0 {
24
+ return dfs(i, j)
25
26
27
28
+ return -1
29
+}
0 commit comments