mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 11:34:46 +08:00
增加841. 钥匙和房间 JavaScript版本
This commit is contained in:
@ -220,6 +220,55 @@ func canVisitAllRooms(rooms [][]int) bool {
|
|||||||
```
|
```
|
||||||
|
|
||||||
JavaScript:
|
JavaScript:
|
||||||
|
```javascript
|
||||||
|
//DFS
|
||||||
|
var canVisitAllRooms = function(rooms) {
|
||||||
|
const dfs = (key, rooms, visited) => {
|
||||||
|
if(visited[key]) return;
|
||||||
|
visited[key] = 1;
|
||||||
|
for(let k of rooms[key]){
|
||||||
|
// 深度优先搜索遍历
|
||||||
|
dfs(k, rooms, visited);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const visited = new Array(rooms.length).fill(false);
|
||||||
|
dfs(0, rooms, visited);
|
||||||
|
//检查是否都访问到了
|
||||||
|
for (let i of visited) {
|
||||||
|
if (!i) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
//BFS
|
||||||
|
var canVisitAllRooms = function(rooms) {
|
||||||
|
const bfs = rooms => {
|
||||||
|
const visited = new Array(rooms.length).fill(0); // 标记房间是否被访问过
|
||||||
|
visited[0] = 1; // 0 号房间开始
|
||||||
|
const queue = []; //js数组作为队列使用
|
||||||
|
queue.push(0); // 0 号房间开始
|
||||||
|
// 广度优先搜索的过程
|
||||||
|
while(queue.length !== 0){
|
||||||
|
let key = queue[0];
|
||||||
|
queue.shift();
|
||||||
|
for(let k of rooms[key]){
|
||||||
|
if(!visited[k]){
|
||||||
|
queue.push(k);
|
||||||
|
visited[k] = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 检查房间是不是都遍历过了
|
||||||
|
for(let i of visited){
|
||||||
|
if(i === 0) return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return bfs(rooms);
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)
|
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)
|
||||||
|
Reference in New Issue
Block a user