钥匙和房间
2025-11-24 本文已影响0人
何以解君愁
class Solution {
public boolean canVisitAllRooms(List<List<Integer>> rooms) {
//有 N 个房间,房间按从 0 到 N-1 编号。
//给你一个数组 rooms,其中 rooms[i]是你进入 i 号房间可以获得的钥匙集合,rooms.size()就是房间数
boolean[] check = new boolean[rooms.size()];
dfs(rooms,check,0);
for(int i = 0;i < check.length;i++){
if(!check[i]){
return false;
}
}
return true;
}
public void dfs(List<List<Integer>> rooms,boolean[] check,int index){
check[index] = true;
for(int m : rooms.get(index)){
if(!check[m]){
//m就是下一次的index
dfs(rooms,check,m);
}
}
}
}