-
Notifications
You must be signed in to change notification settings - Fork 61
Expand file tree
/
Copy path0841-keys-and-rooms.js
More file actions
28 lines (27 loc) · 927 Bytes
/
0841-keys-and-rooms.js
File metadata and controls
28 lines (27 loc) · 927 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
* 841. Keys and Rooms
* https://leetcode.com/problems/keys-and-rooms/
* Difficulty: Medium
*
* There are n rooms labeled from 0 to n - 1 and all the rooms are locked except for room 0.
* Your goal is to visit all the rooms. However, you cannot enter a locked room without
* having its key.
*
* When you visit a room, you may find a set of distinct keys in it. Each key has a number
* on it, denoting which room it unlocks, and you can take all of them with you to unlock
* the other rooms.
*
* Given an array rooms where rooms[i] is the set of keys that you can obtain if you visited
* room i, return true if you can visit all the rooms, or false otherwise.
*/
/**
* @param {number[][]} rooms
* @return {boolean}
*/
var canVisitAllRooms = function(rooms) {
const set = new Set([0]);
for (const key of set) {
rooms[key].forEach(value => set.add(value));
}
return set.size === rooms.length;
};