jzhangnu / Leetcode-JS-Solutions

:tropical_drink: Leetcode solutions using JavaScript.
52 stars 7 forks source link

841. Keys and Rooms #144

Open jzhangnu opened 6 years ago

jzhangnu commented 6 years ago
var canVisitAllRooms = function(rooms) {
    let count = [0];

    hasKey(0);
    return count.length === rooms.length

    function hasKey (index) {
        let curRoom =  rooms[index], nextRoom = rooms[index+1];

        for (key of curRoom) {
            let target = rooms[key];
            if (target && count.indexOf(key) === -1) {
                count.push(key);
                hasKey(key)
            }
        }
    }
}

var canVisitAllRooms = function(rooms) {
     var N = rooms.length;
    var visited = new Set();

    search(0);
    return visited.size === N;

    function search(roomIdx) {
        visited.add(roomIdx)
        rooms[roomIdx].forEach(key => {
            if (!visited.has(key)) {
                search(key);
            }
        })
    }
}