class Solution:
def canVisitAllRooms(self, rooms: List[List[int]]) -> bool:
h_room=set()
h_room.add(0)
visited=[]
for k in range(len(rooms[0])):
self.dp(rooms,h_room,visited,0,k)
if len(h_room)<len(rooms):
return False
return True
def dp(self,rooms,h_room,visited,r,k):
if [r,k] not in visited:
visited.append([r,k])
nr=rooms[r][k]
if nr not in h_room:
h_room.add(nr)
for nk in range(len(rooms[nr])):
self.dp(rooms,h_room,visited,nr,nk)
我的算法之路38--钥匙和房间
最新推荐文章于 2024-04-05 06:55:38 发布
博客给出了一个Python类Solution,其中包含方法canVisitAllRooms用于判断能否访问所有房间。通过集合和列表记录访问情况,使用递归的dp方法进行深度遍历,最终根据访问房间数量判断是否能访问所有房间。
1979

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



