统计岛屿的数量

统计岛屿的数量

http://www.nowcoder.com/questionTerminal/9bac7c75c8254743a0c4910deebd198c

使用递归深度搜索,检测到一个陆地点就向四周探测是否有陆地相连,全部消去成为海洋。再寻找下一个陆地。
O(n^2)了。
用例通过率: 100.00% 运行时间: 1482ms 占用内存: 13820KB。

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
# 计算岛屿的数量
# @param Map string字符串一维数组 表示地图。
# @return int整型
#
class Solution:
    def solve(self, Map):
        count = 0
        x = len(Map)
        for i in range(0, x):
            Map[i] = list(Map[i]) # str类型不可变
        y = len(Map[0])
        for i in range(0, x):
            for j in range(0, y):
                if Map[i][j] == 'x':
                    count += 1
                    recurve(Map, i, j, x, y)
        return count


def recurve(Map, i, j, x, y):
    if Map[i][j] == '.':
        return
    else:
        Map[i][j] = '.'
    if(i-1 >= 0):
        recurve(Map, i-1, j, x, y)
    if(i+1 < x):
        recurve(Map, i+1, j, x, y)
    if(j-1 >= 0):
        recurve(Map, i, j-1, x, y)
    if(j+1 < y):
        recurve(Map, i, j+1, x, y)
    return
全部评论

相关推荐

11-14 16:13
已编辑
重庆科技大学 测试工程师
Amazarashi66:不进帖子我都知道🐮❤️网什么含金量
点赞 评论 收藏
分享
头像
11-06 10:58
已编辑
门头沟学院 嵌入式工程师
双非25想找富婆不想打工:哦,这该死的伦敦腔,我敢打赌,你简直是个天才,如果我有offer的话,我一定用offer狠狠的打在你的脸上
点赞 评论 收藏
分享
预计下个星期就能开奖吧,哪位老哥来给个准信
华孝子爱信等:对接人上周说的是这周
点赞 评论 收藏
分享
2 收藏 评论
分享
牛客网
牛客企业服务