Untitled
user_0781376
plain_text
3 days ago
1.5 kB
18
Indexable
import java.util.*; public class Main { public static boolean canVisitAllRooms(List<List<Integer>> rooms) { Set<Integer> visited = new HashSet<>(); // Track visited rooms Stack<Integer> toVisit = new Stack<>(); // Stack for DFS traversal toVisit.push(0); // Start from room 0 visited.add(0); while (!toVisit.isEmpty()) {//until the rooms to be visited is empty int currentRoom = toVisit.pop();//take out the room to visit for (int key : rooms.get(currentRoom)) //extract the key { if (!visited.contains(key)) //if visited room does contain the key { visited.add(key);//add that key to visted room toVisit.push(key);//push that key to room to be visited } } } return visited.size() == rooms.size(); // Check if all rooms are visited } public static void main(String[] args) { List<List<Integer>> rooms1 = Arrays.asList( Arrays.asList(1), Arrays.asList(2), Arrays.asList(3), Arrays.asList() ); System.out.println(canVisitAllRooms(rooms1)); // Output: true List<List<Integer>> rooms2 = Arrays.asList( Arrays.asList(1, 3), Arrays.asList(3, 0, 1), Arrays.asList(2), Arrays.asList(0) ); System.out.println(canVisitAllRooms(rooms2)); // Output: false } }
Editor is loading...
Leave a Comment