24 lines
479 B
Go
24 lines
479 B
Go
// Package q841 implements a solution for https://leetcode.com/problems/keys-and-rooms/
|
|
package q841
|
|
|
|
func canVisitAllRooms(rooms [][]int) bool {
|
|
locked := len(rooms) - 1
|
|
|
|
opened := make([]bool, len(rooms))
|
|
opened[0] = true
|
|
|
|
queue := []int{0}
|
|
for ; len(queue) > 0; queue = queue[1:] {
|
|
for _, i := range rooms[queue[0]] {
|
|
if opened[i] {
|
|
continue
|
|
}
|
|
opened[i] = true
|
|
locked--
|
|
queue = append(queue, i)
|
|
}
|
|
}
|
|
return locked == 0
|
|
}
|
|
|
|
var _ = canVisitAllRooms
|