Skip to content

695 #1

@asu126

Description

@asu126
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] )
      }
   }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions