841.钥匙和房间
/**
* @param {number[][]} rooms
* @return {boolean}
*/
var canVisitAllRooms = function (rooms) {
let visited = new Set() // 访问过的房间
// 模拟开房间过程
function visit(curRoomNum) {
// 递归结束条件,如果访问到原来访问过的,说明死循环了
if (visited.has(curRoomNum)) {
return
}
visited.add(curRoomNum) // 记录访问了该房间
const keys = rooms[curRoomNum] // 房间里的钥匙
// 每条线路都走一遍
for (let i = 0; i < keys.length; i++) {
visit(keys[i])
}
}
// 从0号房间开始
visit(0)
console.log(visited)
return visited.size === rooms.length
};