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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

1971. Find if Path Exists in Graph

發(fā)布時間:2023/11/29 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1971. Find if Path Exists in Graph 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1971. Find if Path Exists in Graph

有一個具有 n個頂點(diǎn)的 雙向 圖,其中每個頂點(diǎn)標(biāo)記從 0 到 n - 1(包含 0 和 n - 1)。圖中的邊用一個二維整數(shù)數(shù)組 edges 表示,其中 edges[i] = [ui, vi] 表示頂點(diǎn) ui 和頂點(diǎn) vi 之間的雙向邊。 每個頂點(diǎn)對由 最多一條 邊連接,并且沒有頂點(diǎn)存在與自身相連的邊。

請你確定是否存在從頂點(diǎn) start 開始,到頂點(diǎn) end 結(jié)束的 有效路徑 。

給你數(shù)組 edges 和整數(shù) n、start和end,如果從 start 到 end 存在 有效路徑 ,則返回 true,否則返回 false 。

示例 1:輸入:n = 3, edges = [[0,1],[1,2],[2,0]], start = 0, end = 2 輸出:true 解釋:存在由頂點(diǎn) 0 到頂點(diǎn) 2 的路徑: - 0 → 1 → 2 - 0 → 2示例 2:輸入:n = 6, edges = [[0,1],[0,2],[3,5],[5,4],[4,3]], start = 0, end = 5 輸出:false 解釋:不存在由頂點(diǎn) 0 到頂點(diǎn) 5 的路徑.

提示:

  • 1 <= n <= 2?1052 * 10^52?105
  • 0 <= edges.length <= 2?1052 * 10^52?105
  • edges[i].length == 2
  • 0 <= ui, vi <= n - 1
  • ui != vi
  • 0 <= start, end <= n - 1
  • 不存在雙向邊
  • 不存在指向頂點(diǎn)自身的邊

解題思路

  • 使用map維護(hù)雙向圖邊之間的關(guān)系,key為節(jié)點(diǎn)編號,value為一個記錄與當(dāng)前節(jié)點(diǎn)存在公共邊連接的節(jié)點(diǎn)數(shù)組。
  • 利用隊列實現(xiàn)廣度優(yōu)先搜索,先將start節(jié)點(diǎn)入隊,每次從隊列中取出隊首節(jié)點(diǎn),將與該節(jié)點(diǎn)存在公共邊并且沒被訪問過的節(jié)點(diǎn)入隊,直到找出end節(jié)點(diǎn)為止,如果直到隊列為空都找不到end節(jié)點(diǎn),說明不存在從 start 到 end 的 有效路徑
  • 代碼

    class Solution { public:bool validPath(int n, vector<vector<int>>& edges, int start, int end) {map<int,vector<int>> e;for(auto item:edges){e[item[0]].push_back(item[1]);e[item[1]].push_back(item[0]);}unordered_set<int> s;s.insert(start);queue<int>q;q.push(start);while (!q.empty()){int cur=q.front();q.pop();if (cur==end)return true;for (auto c:e[cur]) {if (!s.count(c)){q.push(c);s.insert(c);}}}return false;} };

    總結(jié)

    以上是生活随笔為你收集整理的1971. Find if Path Exists in Graph的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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