# -*- coding:utf-8 -*-
class Solution:
def hasPath(self, matrix, rows, cols, path):
# write code here
visited=[False for i in range(rows*cols)]
if not matrix or rows<1 or cols<1 or not path:
return False
for r in range(rows):
for c in range(cols):
if self.dp(matrix,rows, cols, r, c, path,0,visited):
return True
return False
def dp(self, matrix, rows, cols, r, c,path,index,visited):
if index>=len(path):
return True
haspath=False
if r>=0 and r<rows and c>=0 and c<cols and path[index]==matrix[r*cols+c] and not visited[r*cols+c]:
index+=1
visited[r*cols+c]=True
haspath=self.dp(matrix, rows, cols, r-1, c,path,index,visited) or self.dp(matrix, rows, cols, r+1, c,path,index,visited)or self.dp(matrix, rows, cols, r, c-1,path,index,visited) or self.dp(matrix, rows, cols, r, c+1,path,index,visited)
if not haspath:
index-=1
visited[r*cols+c]=False
return haspath
我的算法之路31--矩阵中的路径
最新推荐文章于 2024-01-10 07:00:00 发布
博客展示了一段Python代码,定义了一个`Solution`类,其中`hasPath`方法用于判断矩阵中是否存在指定路径,通过遍历矩阵元素并调用`dp`方法进行深度搜索,`dp`方法采用递归方式,根据条件更新索引和访问标记,最终返回路径是否存在的结果。
1536

被折叠的 条评论
为什么被折叠?



