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
}
沒有留言:
張貼留言