难度 中等
这道题也是比较简单的,选个喜欢的算法搜索就可以了。我用了深度搜索,因为代码简单些省时间。
执行用时 :2 ms, 在所有 Java 提交中击败了79.57%的用户
内存消耗 :39.7 MB, 在所有 Java 提交中击败了100.00%的用户
HashSet<Integer> roomSet = new HashSet<Integer>();
public boolean canVisitAllRooms(List<List<Integer>> rooms) {
visitRoom(rooms, 0);
if(roomSet.size() == rooms.size()){
return true;
}else{
return false;
}
}
public void visitRoom(List<List<Integer>> rooms, Integer roomNo){
if(roomSet.contains(roomNo)){
return;
}
roomSet.add(roomNo);
List<Integer> keys = rooms.get(roomNo);
for(int i = 0; i < keys.size(); i++){
visitRoom(rooms, keys.get(i));
}
}