题解 | #矩阵中的路径#

矩阵中的路径

https://www.nowcoder.com/practice/2a49359695a544b8939c77358d29b7e6

class Solution:
    def hasPath(self , matrix: List[List[str]], word: str) -> bool:
        # write code here
        row = len(matrix)
        col = len(matrix[0])
        
        def dfs(i, j, k, visited):           #visisted已访问的坐标set(),当前符合长度
            if k == len(word):
                return True
            for x, y in [(1,0), (-1,0), (0,1), (0,-1)]:
                tmp_i = i + x
                tmp_j = j + y
                if 0<=tmp_i<row and 0<=tmp_j<col and (tmp_i,tmp_j) not in visited and matrix[tmp_i][tmp_j] == word[k]:
                    visited.add((tmp_i,tmp_j))
                    if dfs(tmp_i, tmp_j, k+1, visited):
                        return True                 #开始递归,如果最后k==len(word)则输出True,如果不行则回溯
                    visited.remove((tmp_i,tmp_j))
            return False
            
        for i in range(row):
            for j in range(col):
                if matrix[i][j] == word[0] and dfs(i, j, 1,{(i, j)}):   #找起点
                        return True
        return False

全部评论

相关推荐

03-18 01:22
门头沟学院 Java
多多爱我我爱多多:linkedList 替换 arrayList 是怎么实现20倍提升的 好奇
点赞 评论 收藏
分享
03-06 20:09
贵州大学 Java
King987:你这个学历找个中大厂刷实习经历都是可以的,但是项目要有亮点才行,这个什么外卖就不要做了,去找找最新的项目,至少涉及高并发或者是新型的AI技术mcp rag啥的 ,我在出简历点评,但是你这个没什么好点评的,内容太少,而且含金量太低。自己改一改吧,或者看一下我的项目地址中,那里有大厂最近做过的实习项目
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务