841. 钥匙和房间
小于 1 分钟
841. 钥匙和房间中等
解题思路:
dfs:
- 设置一个 bool 数组,存放 rooms 中每个数是否可访问。
- 定义
num
判断可访问的房间个数 - 定义
dfs()
函数,传入 rooms 和 第x个索引房间 - 递归调用
dfs()
class Solution {
boolean[] vis;
int num;
public boolean canVisitAllRooms(List<List<Integer>> rooms) {
int n = rooms.size();
num = 0;
vis = new boolean[n];
dfs(rooms, 0);
return num == n;
}
// 传入 rooms 和 第x个索引房间
public void dfs(List<List<Integer>> rooms, int x) {
vis[x] = true;
num++;
for (int it : rooms.get(x)) {
if (!vis[it]) {
dfs(rooms, it);
}
}
}
}
Powered by Waline v2.15.5