Open jzhangnu opened 6 years ago
var canVisitAllRooms = function(rooms) { let count = [0]; hasKey(0); return count.length === rooms.length function hasKey (index) { let curRoom = rooms[index], nextRoom = rooms[index+1]; for (key of curRoom) { let target = rooms[key]; if (target && count.indexOf(key) === -1) { count.push(key); hasKey(key) } } } } var canVisitAllRooms = function(rooms) { var N = rooms.length; var visited = new Set(); search(0); return visited.size === N; function search(roomIdx) { visited.add(roomIdx) rooms[roomIdx].forEach(key => { if (!visited.has(key)) { search(key); } }) } }