leetcode 841

此题想法较简单,一看就是从0开始依次往下遍历,自然想到dfs和bfs。正好拿来练手。附代码

dfs:

class Solution:
    def canVisitAllRooms(self, rooms):
        """
        :type rooms: List[List[int]]
        :rtype: bool
        """
        visited = set()
        visited.add(0)
        def dfs(rooms,loc,visited):
            for i in rooms[loc]:
                if i not in visited:
                    visited.add(i)
                    dfs(rooms,i,visited)
        dfs(rooms,0,visited)
        if len(visited) == len(rooms):
            return True
        else:
            return False
           

bfs:

class Solution:
    def canVisitAllRooms(self, rooms):
        """
        :type rooms: List[List[int]]
        :rtype: bool
        """
        procession = [0]
        visited = set()
        while len(procession)>0:
            value = procession.pop(0)
            visited.add(value)
            for i in rooms[value]:
                if i not in visited:
                    procession.append(i)
        if len(visited) == len(rooms):
            return True
        else:
            return False
        
           

猜你喜欢

转载自blog.csdn.net/bengepai/article/details/82312652