首页 > 其他 > 详细

leetcode-695

时间:2020-03-15 23:11:14      阅读:81      评论:0      收藏:0      [点我收藏+]

这题典型的搜索,是深度还是广度,这就随便了。我觉得深度比较合适一点,这数据也不大。

 

package leetcode

func maxAreaOfIsland(grid [][]int) int {
    if len(grid) == 0 || len(grid[0]) == 0 {
        return 0
    }
    res := 0
    for r := 0; r < len(grid); r++ {
        for c := 0; c < len(grid[0]); c++ {
            if grid[r][c] == 1 {
                a := area(grid, r, c)
                res = max(a, res)
            }
        }
    }
    return res
}

func max(a, b int) int {
    if a > b {
        return a
    }
    return b
}

func area(grid [][]int, r int, c int) int {
    if !(0 <= r && r < len(grid) && 0 <= c && c < len(grid[0])) {
        return 0
    }
    if grid[r][c] != 1 {
        return 0
    }
    grid[r][c] = 2
    return 1 + area(grid, r - 1, c) + area(grid, r + 1, c) + area(grid, r, c - 1) + area(grid, r, c + 1)
}

 

end

leetcode-695

原文:https://www.cnblogs.com/CherryTab/p/12500872.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!