美文网首页
2019-08-21剑指 矩阵中的路径

2019-08-21剑指 矩阵中的路径

作者: mztkenan | 来源:发表于2019-08-21 12:56 被阅读0次

50min
1.行和列写反了
2.没有递归停止条件了
3.return只返回第一个的错误
还好k和visited都记得还原了

class Solution:
    def hasPath(self, matrix, rows, cols, path):
        if not matrix or not path or rows<=0 or cols<=0:return False
        visited=[False for i in range(len(matrix))]
        for index,c in enumerate(matrix):
            if c==path[0]:
                i, j = index // cols, index % cols
                # print(i,j,c)
                if self.dfs(matrix,rows,cols,path,visited,i,j,0):return True #不能只返回第一个
        return False

    def dfs(self,matrix,rows,cols,path,visited,i,j,k):
        if self.check_valid(matrix,rows,cols,path,visited,i,j,k):
            if k==len(path)-1:return True # 递归终止条件忘了
            visited[i*cols+j]=True
            t1=self.dfs(matrix,rows,cols,path,visited,i+1,j,k+1) # 这里k不用单独+-
            t2=self.dfs(matrix,rows,cols,path,visited,i-1,j,k+1) # 这里k不用单独+-
            t3=self.dfs(matrix,rows,cols,path,visited,i,j+1,k+1) # 这里k不用单独+-
            t4=self.dfs(matrix,rows,cols,path,visited,i,j-1,k+1) # 这里k不用单独+-
            visited[i*cols+j]=False
            return t1 or t2 or t3 or t4
        return False



    def check_valid(self,matrix,rows,cols,path,visited,i,j,k):
        if i<0 or i>=rows or j<0 or j>=cols:return False #行和列写反了
        index=i*cols+j
        if visited[index] or matrix[index] != path[k]:return False
        return True

相关文章

  • 2019-08-21剑指 矩阵中的路径

    50min1.行和列写反了2.没有递归停止条件了3.return只返回第一个的错误还好k和visited都记得还原了

  • [剑指offer] 矩阵中的路径

    本文首发于我的个人博客:尾尾部落 题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的...

  • 【剑指12】矩阵中的路径

    题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格...

  • 剑指offer——矩阵中的路径

    题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格...

  • 剑指offer 矩阵中的路径

    思想:标准的回溯法实现: 使用hash表标记元素是否已经被访问 使用全局变量以及在函数内定义函数尽量减少代码量

  • 剑指牛客——矩阵中的路径

    思路: 递归遍历,如果遇到匹配的就探索四个方向上的字符串是否符合待匹配字符串,用一个int类型的数组来标记访问过的...

  • 《剑指Offer》回溯 矩阵中的路径

    题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格...

  • 剑指Offer——矩阵中的路径 Java

    题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格...

  • 【剑指 offer】矩阵中的路径(DFS)

    1、题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。 路径可以从矩阵中的任意...

  • 剑指 Offer 12 矩阵中的路径

    题意:给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,...

网友评论

      本文标题:2019-08-21剑指 矩阵中的路径

      本文链接:https://www.haomeiwen.com/subject/xjubsctx.html