kangabo 2021-07-29 21:00 采纳率: 85.1%
浏览 79
已结题

leetcode200题 dfs怎么打印呀,不会打印

img

img


class testMedium200:      #dfs  deep-first search  树分支深度优先搜索
    def dfs(self, grid, r, c):
        grid[r][c] = 0
        nr, nc = len(grid), len(grid[0])
        for x, y in [(r-1,c),(r+1, c), (r, c-1), (r, c+1)]:
            if 0 <= x < nr and 0 <= y <nc and grid[x][y] == '1':
                self.dfs(grid, x, y)


    def numIslands(self, grid): #grid: List[List(str)] #集合字符串最后以集合的方式接受输出打印
        nr = len(grid)
        if nr == 0:
            return 0
        nc = len(grid[0])

        num_islands = 0
        for r in range(nr):
            for c in range(nc):
                if grid[r][c] == '1':
                    num_islands += 1
                    self.dfs(grid, r , c)

        return num_islands

    grid = [  ["1","1","1","1","0"],  ["1","1","0","1","0"],["1","1","0","0","0"],["0","0","0","0","0"
    if __name__ == '__main__':
     t = testMedium200()
    target = 9
    print(t.dfs(grid))
  • 写回答

3条回答 默认 最新

  • Roc-xb 后端领域优质创作者 2021-07-30 01:08
    关注

    有帮助的话,希望能够采纳支持一下,谢谢!

    """
    -*- coding:utf-8 -*-
    Author:yang-roc
    QQ:327844461
    Email:aida_pc@qq.com
    Time: 2021-07-30
    """
    
    class testMedium200:  # dfs  deep-first search  树分支深度优先搜索
        def dfs(self, grid, r, c):
            grid[r][c] = 0
            nr, nc = len(grid), len(grid[0])
            for x, y in [(r - 1, c), (r + 1, c), (r, c - 1), (r, c + 1)]:
                if 0 <= x < nr and 0 <= y < nc and grid[x][y] == '1':
                    self.dfs(grid, x, y)
    
        def numIslands(self, grid):  # grid: List[List(str)] #集合字符串最后以集合的方式接受输出打印
            nr = len(grid)
            if nr == 0:
                return 0
            nc = len(grid[0])
            num_islands = 0
            for r in range(nr):
                for c in range(nc):
                    if grid[r][c] == '1':
                        num_islands += 1
                        self.dfs(grid, r, c)
            return num_islands
    
    
    if __name__ == '__main__':
        t = testMedium200()
        # 示例①
        grid1 = [
            ["1", "1", "1", "1", "0"],
            ["1", "1", "0", "1", "0"],
            ["1", "1", "0", "0", "0"],
            ["0", "0", "0", "0", "0"]
        ]
        print(t.numIslands(grid1))
        # 示例②
        grid2 = [
            ["1", "1", "0", "0", "0"],
            ["1", "1", "0", "0", "0"],
            ["0", "0", "1", "0", "0"],
            ["0", "0", "0", "1", "1"]
        ]
        print(t.numIslands(grid2))
    

    程序运行截图:

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月7日
  • 已采纳回答 7月30日
  • 修改了问题 7月29日
  • 修改了问题 7月29日
  • 展开全部

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序