-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
package main
import "fmt"
func maxAreaOfIsland(grid [][]int) int {
var max int = 0
for i := 0; i < len(grid); i++ {
for j := 0; j < len(grid[0]); j++ {
if grid[i][j] == 1 {
tmp := dfs(grid, i, j)
if max < tmp {
max = tmp
}
}
}
}
return max
}
func dfs(grid [][]int, i int, j int) int{
var m, n int = len(grid), len(grid[0])
if i < 0 || i >= m || j < 0 || j >= n {
return 0
}
if grid[i][j] == 0{
return 0
}
grid[i][j] = 0
return dfs(grid, i + 1, j) + dfs(grid, i - 1, j) + dfs(grid, i, j + 1) + dfs(grid, i, j - 1) + 1
}
func main() {
/* 数组 - 5 行 2 列*/
var a [][]int= [][]int{ {0,0,1,0,0,0,0,1,0,0,0,0,0}, {0,0,0,0,0,0,0,1,1,1,0,0,0}, {0,1,1,0,1,0,0,0,0,0,0,0,0}, {0,1,0,0,1,1,0,0,1,0,1,0,0},{0,1,0,0,1,1,0,0,1,1,1,0,0},
{0,0,0,0,0,0,0,0,0,0,1,0,0},{0,0,0,0,0,0,0,1,1,1,0,0,0},{0,0,0,0,0,0,0,1,1,0,0,0,0}}
fmt.Println(maxAreaOfIsland(a))
/* 输出数组元素 */
for i := 0; i < len(a); i++ {
for j := 0; j < len(a[0]); j++ {
fmt.Printf("a[%d][%d] = %d\n", i,j, a[i][j] )
}
}
}Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels