From 073c59ae804167ce769d6d7d42f58ab7b3da0d2d Mon Sep 17 00:00:00 2001 From: huangge1199 Date: Fri, 2 Jul 2021 16:15:48 +0800 Subject: [PATCH] =?UTF-8?q?LeetBook--=E9=98=9F=E5=88=97&=E6=A0=88--?= =?UTF-8?q?=E9=92=A5=E5=8C=99=E5=92=8C=E6=88=BF=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../book/queueStack/CanVisitAllRooms.java | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/main/java/leet/book/queueStack/CanVisitAllRooms.java diff --git a/src/main/java/leet/book/queueStack/CanVisitAllRooms.java b/src/main/java/leet/book/queueStack/CanVisitAllRooms.java new file mode 100644 index 0000000..9267790 --- /dev/null +++ b/src/main/java/leet/book/queueStack/CanVisitAllRooms.java @@ -0,0 +1,42 @@ +package leet.book.queueStack; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Queue; + +/** + * Created with IntelliJ IDEA. + * + * @author: 轩辕龙儿 + * @date: 2021/7/2 16:09 + * @Description: No Description + */ +public class CanVisitAllRooms { + class Solution { + public boolean canVisitAllRooms(List> rooms) { + int num = rooms.size(); + List use = new ArrayList<>(); + Queue queue = new LinkedList<>(); + queue.offer(0); + use.add(0); + if (num == use.size()) { + return true; + } + while (!queue.isEmpty()) { + int open = queue.poll(); + for (int room : rooms.get(open)) { + if (use.contains(room)) { + continue; + } + queue.offer(room); + use.add(room); + if (num == use.size()) { + return true; + } + } + } + return false; + } + } +}