2022年1月29日 星期六

841, Keys and rooms

====
841, Keys and rooms
====
DFS,
for each unvisited node/island problems

====
1. 題目給予固定長度n的房間 以及房間內含的鑰匙
題目定義第一間是沒有鎖的=>DFS開始的地方
生成一個n的visited

2. DFS走過所有的鑰匙
最終for檢查visited
如果還有房間un-visited則false

====
class Solution{
public:
void DFS( vec<vec<int>>&rooms, vec<bool>&visited, int node){
  visited[node]=true
  for auto k:rooms[node]
    if( !visited[k] )
      DFS( rooms, visited, k )
}

bool VisitedRoom( vec<vec<int>>& rooms ){
  int n=rooms.size()
  vec<bool> visited(n, false)
  DFS( rooms, visited, 0 )

  int i=0
  for i-n
    if !visited[i] return false
  return true
}  

沒有留言:

張貼留言