日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 841. 钥匙和房间(DFS/BFS)

發(fā)布時(shí)間:2024/7/5 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 841. 钥匙和房间(DFS/BFS) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 1. 題目
    • 2. 解題
      • 2.1 DFS
      • 2.2 BFS

1. 題目

有 N 個(gè)房間,開(kāi)始時(shí)你位于 0 號(hào)房間。每個(gè)房間有不同的號(hào)碼:0,1,2,…,N-1,并且房間里可能有一些鑰匙能使你進(jìn)入下一個(gè)房間。

在形式上,對(duì)于每個(gè)房間 i 都有一個(gè)鑰匙列表 rooms[i],每個(gè)鑰匙 rooms[i][j] 由 [0,1,…,N-1] 中的一個(gè)整數(shù)表示,其中 N = rooms.length。 鑰匙 rooms[i][j] = v 可以打開(kāi)編號(hào)為 v 的房間。

最初,除 0 號(hào)房間外的其余所有房間都被鎖住。

你可以自由地在房間之間來(lái)回走動(dòng)。

如果能進(jìn)入每個(gè)房間返回 true,否則返回 false。

示例 1: 輸入: [[1],[2],[3],[]] 輸出: true 解釋: 我們從 0 號(hào)房間開(kāi)始,拿到鑰匙 1。 之后我們?nèi)?1 號(hào)房間,拿到鑰匙 2。 然后我們?nèi)?2 號(hào)房間,拿到鑰匙 3。 最后我們?nèi)チ?3 號(hào)房間。 由于我們能夠進(jìn)入每個(gè)房間,我們返回 true。示例 2: 輸入:[[1,3],[3,0,1],[2],[0]] 輸出:false 解釋:我們不能進(jìn)入 2 號(hào)房間。

來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/keys-and-rooms
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

2. 解題

2.1 DFS

class Solution { public:bool canVisitAllRooms(vector<vector<int>>& rooms) {bool visited[rooms.size()] = {false};dfs(visited, rooms, 0);for(int i = 0; i < rooms.size(); ++i){if(visited[i] == false)return false;}return true;}void dfs(bool *visited, vector<vector<int>> &rooms, int i){visited[i] = true;for(int key = 0; key < rooms[i].size(); ++key){if(!visited[rooms[i][key]])dfs(visited, rooms, rooms[i][key]);}} };

2.2 BFS

class Solution { public:bool canVisitAllRooms(vector<vector<int>>& rooms) {bool visited[rooms.size()] = {false};queue<int> q;q.push(0);visited[0] = true;int key, roomID, i;while(!q.empty()){roomID = q.front();q.pop();for(i = 0; i < rooms[roomID].size(); ++i){key = rooms[roomID][i];if(!visited[key]){q.push(key);visited[key] = true;}}}for(int i = 0; i < rooms.size(); ++i){if(visited[i] == false)return false;}return true;} };

總結(jié)

以上是生活随笔為你收集整理的LeetCode 841. 钥匙和房间(DFS/BFS)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。