给定 n 个房间,每个房间 i 里有一些钥匙,可以打开对应的房间。初始时你身处 0 号房间并持有一把能打开 0 号房间的钥匙,但房间 0 内的钥匙可以取得。请判断你能否进入所有房间。例如 rooms = [[1],[2],[3],[]],返回 true;rooms = [[1,3],[3,0,1],[2],[0]],返回 false。
考察说明
考察图遍历(DFS/BFS)及访问状态记录能力
回答思路
- 正确理解可以重复取得钥匙并持续扩展可访问集合
- 使用访问数组标记已进入房间防止死循环
- 能清晰实现 DFS 或 BFS 遍历
- 正确判断最终访问房间数是否等于总房间数
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。