841. Keys and Rooms

Link

Solution

Traversal room by DFS/BFS and see it all the room is traversed.

  public boolean canVisitAllRooms(List<List<Integer>> rooms) {
        
        int N = rooms.size();
        boolean[] isVisited = new boolean[N];
        dfs(rooms, isVisited, 0);
        
        for(boolean b : isVisited){
            if(!b) return false;
        }
        return true;
        
    }
    
    public void dfs(List<List<Integer>> rooms, boolean[] isVisited, int i){
        
        if(isVisited[i]) return;
        
        isVisited[i] = true;
        
        for(int room : rooms.get(i)){
            dfs(rooms, isVisited, room);
        }
        
    }

Last updated

Was this helpful?