算法

钥匙和房间

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);
            }
        }
    }
}












上一篇 下一篇

猜你喜欢

热点阅读