矩阵中的路径

image.png
# -*- coding:utf-8 -*-
class Solution:
    def hasPath(self, matrix, rows, cols, path):
        # write code here
        maze = [list(matrix[i*cols:i*cols+cols]) for i in range(rows)]
        visited = [[0]*cols for i in range(rows)]
        flag = 0
        for i in range(rows):
            for j in range(cols):
                if self.search(maze, rows, cols, i, j, 0, path, visited):
                    flag = 1
                    break
        if flag:
            return True
        else:
            return False

    def search(self, maze, rows, cols, row, col, cur, path, visited):
        if cur == len(path):
            return True
        hasPathFlag = False
        if row >= 0 and row < rows and col >= 0 and col < cols and maze[row][col] == path[cur] and visited[row][col] == 0:
            visited[row][col] = 1
            cur += 1
            hasPathFlag = self.search(maze, rows, cols, row -1, col, cur, path, visited) or\
                      self.search(maze, rows, cols, row + 1, col, cur , path, visited) or\
                      self.search(maze, rows, cols, row , col-1, cur , path, visited) or\
                      self.search(maze, rows, cols, row , col+1, cur , path, visited)
            if not hasPathFlag:
                visited[row][col] = 0
                cur -= 1
        return hasPathFlag
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本系列导航:剑指offer(第二版)java实现导航帖 面试题12:矩阵中的路径 题目要求:设计一个函数,用来判断...
    ryderchan阅读 5,468评论 1 1
  • 题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子...
    NoFacePeace阅读 1,693评论 0 0
  • 题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子...
    juexin阅读 3,693评论 0 1
  • 从写真女星改行拍摄艾薇的女优基本都能够在艾薇界混出些名堂,一方面得益于其在写真界积攒的大量人气。另一方面在于一般写...
    734dabc70eac阅读 13,438评论 0 0
  • 昨天晚上,一个朋友在微信上和我吐槽。临下班的时候,被领导和 HR 请去“谈心”,足足谈了一小时,累死了。主要内容是...
    Luisezhou阅读 3,405评论 0 0

友情链接更多精彩内容