| 123456789101112131415161718192021222324252627282930313233343536 | 
							- var detX = []int{1, 0, -1, 0}
 
- var detY = []int{0, 1, 0, -1}
 
- func maxAreaOfIsland(grid [][]int) (area int) {
 
- 	H := len(grid)
 
- 	if H == 0 {
 
- 		return
 
- 	}
 
- 	W := len(grid[0])
 
- 	for y := 0; y < H; y++ {
 
- 		for x := 0; x < W; x++ {
 
- 			area = maxInt(area, dfs(grid, W, H, x, y))
 
- 		}
 
- 	}
 
- 	return
 
- }
 
- func dfs(grid [][]int, W, H, x, y int) (area int) {
 
- 	if x < 0 || W <= x || y < 0 || H <= y || grid[y][x] == 0 {
 
- 		return
 
- 	}
 
- 	area++
 
- 	grid[y][x] = 0
 
- 	for i := 0; i < 4; i++ {
 
- 		nx, ny := x+detX[i], y+detY[i]
 
- 		area += dfs(grid, W, H, nx, ny)
 
- 	}
 
- 	return
 
- }
 
- func maxInt(x, y int) int {
 
- 	if x < y {
 
- 		return y
 
- 	}
 
- 	return x
 
- }
 
 
  |