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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 1135. 最低成本联通所有城市(最小生成树+排序+并查集)

發布時間:2024/7/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 1135. 最低成本联通所有城市(最小生成树+排序+并查集) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1. 題目
    • 2. 解題
      • 1. Kruskal
      • 2. prim

1. 題目

想象一下你是個城市基建規劃者,地圖上有 N 座城市,它們按以 1 到 N 的次序編號。

給你一些可連接的選項 conections,其中每個選項 conections[i] = [city1, city2, cost] 表示將城市 city1 和城市 city2 連接所要的成本。(連接是雙向的,也就是說城市 city1 和城市 city2 相連也同樣意味著城市 city2 和城市 city1 相連)。

返回使得每對城市間都存在將它們連接在一起的連通路徑(可能長度為 1 的)最小成本
該最小成本應該是所用全部連接代價的綜合。如果根據已知條件無法完成該項任務,則請你返回 -1。

示例 1:

輸入:N = 3, conections = [[1,2,5],[1,3,6],[2,3,1]] 輸出:6 解釋: 選出任意 2 條邊都可以連接所有城市,我們從中選取成本最小的 2 條。

示例 2:

輸入:N = 4, conections = [[1,2,3],[3,4,4]] 輸出:-1 解釋: 即使連通所有的邊,也無法連接所有城市。提示: 1 <= N <= 10000 1 <= conections.length <= 10000 1 <= conections[i][0], conections[i][1] <= N 0 <= conections[i][2] <= 10^5 conections[i][0] != conections[i][1]

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/connecting-cities-with-minimum-cost
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 解題

圖Graph–最小生成樹

1. Kruskal

  • 將邊的權值排序,小的先遍歷,用并查集檢查兩個頂點是否合并了,沒有合并則將該邊加入生成樹
  • 也可以使用優先隊列實現(相當于排序)
class dsu {vector<int> f; public:dsu(int n){f.resize(n);for(int i = 0; i < n; ++i)f[i] = i;}void merge(int a, int b){int fa = find(a);int fb = find(b);f[fa] = fb;}int find(int a){int origin = a;while(a != f[a]){a = f[a];}return f[origin] = f[a];} };class Solution { public:int minimumCost(int N, vector<vector<int>>& connections) {dsu u(N+1);sort(connections.begin(), connections.end(),[&](auto a, auto b){return a[2] < b[2];//距離短的邊優先});int edge = 0, p1, p2, dis, total = 0;for(int i = 0; i < connections.size(); ++i){p1 = connections[i][0];p2 = connections[i][1];dis = connections[i][2];if(u.find(p1) != u.find(p2))//兩個還未鏈接{u.merge(p1,p2);edge++;total += dis;}if(edge == N-1)break;}return edge==N-1 ? total : -1;} };

1504 ms 158.6 MB

2. prim

  • 把一個初始頂點的所有邊加入優先隊列
  • 取出最短的邊,把這條邊的另一個頂點相關的邊加入隊列
  • 再取出最小的邊,重復下去,直到所有頂點加入過了
struct cmp {bool operator()(const pair<int,int>& a, const pair<int,int>& b) const{return a.second > b.second;//小頂堆, 距離小的優先} }; class Solution { public:int minimumCost(int N, vector<vector<int>>& connections) {vector<bool> vis(N+1, false);vector<vector<pair<int,int>>> edges(N+1,vector<pair<int,int>>());for(auto& c : connections){edges[c[0]].push_back({c[1],c[2]});edges[c[1]].push_back({c[0],c[2]});}priority_queue<pair<int,int>, vector<pair<int,int>>, cmp> q;int to, distance, total = 0, edge = 0;vis[1] = true;for(auto& e : edges[1])q.push(e); while(!q.empty()){to = q.top().first;distance = q.top().second;q.pop();if(!vis[to]){vis[to] = true;total += distance;edge++;if(edge == N-1)return total;for(auto& e : edges[to])q.push(e); }}return -1;} };

492 ms 40.9 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!

總結

以上是生活随笔為你收集整理的LeetCode 1135. 最低成本联通所有城市(最小生成树+排序+并查集)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 催眠美妇肉奴系统 | 91色视频在线观看 | 可以免费看av的网址 | 精品乱子一区二区三区 | 国产日韩一级片 | 美女主播福利视频 | 少妇高潮大叫好爽喷水 | 在线视频成人 | 日日骚av一区二区 | 午夜精品久久久久久久99黑人 | 国产精品久久久久久久久免费软件 | 国产免费看 | 欧美日韩国产一级 | 色屁屁www| xx视频在线观看 | 欧美在线免费 | 嫩草在线视频 | 国产午夜一级 | 制服诱惑一区二区三区 | 国产精品久久久久久久久久久久久久久 | 亚洲毛片一区 | 国产另类av | 亚洲一区二区在线视频 | 久久精品99久久久 | 国产精品一区二区av | 91大神视频在线播放 | 国产日韩一区二区三区 | 欧美亚洲另类小说 | 亚洲综合视频在线播放 | wwwav视频在线观看 | 天堂网ww | 国产一区免费观看 | 中文字幕一区二区三区人妻四季 | 成年人黄色片 | 九一网站在线观看 | 国产一区精品视频 | 久久爱伊人| 欧美一级片在线免费观看 | 国产日韩精品视频 | 成人小视频免费看 | 91人人澡人人爽人人精品 | 在线观看国产免费av | 快播在线视频 | 天堂va蜜桃一区二区三区漫画版 | 欧美性猛交xxx乱大交3 | 国产高清视频免费在线观看 | 五月天久久久久久 | 欧美一区二区公司 | 欧美极品视频在线观看 | a极毛片| 桃花久久 | 一本一道av无码中文字幕 | 91在线视频在线观看 | 自拍偷拍视频网 | 欧美黄在线观看 | 黄色网页在线播放 | 国产男女猛烈无遮挡a片漫画 | 久久精品国产免费看久久精品 | 1024手机在线观看 | 精品人妻无码专区在线 | 免费看黄在线网站 | hd极品free性xxx护士 | 超碰97国产 | 动漫同人高h啪啪爽文 | 亚洲欧美一区二区三区在线观看 | 日本不卡在线播放 | 欧美视频91| 欧美在线视频网 | 午夜在线一区二区三区 | 娇妻被肉到高潮流白浆 | 色噜噜噜 | 亚洲色图偷 | 91区 | 久久久激情网 | 中国1级毛片 | 武林美妇肉伦娇喘呻吟 | 婷婷亚洲激情 | www日韩视频 | 亚洲熟女一区二区 | 草草草av | aaaa毛片| 国产美女精品久久久 | 91视频在线观看 | 久久久综合视频 | 亚洲欧美另类综合 | 久久久久久一区二区 | 日本在线高清 | 在线观看污污视频 | 免费一级做a爰片久久毛片潮 | 禁果av一区二区三区 | 午夜精品一区二区三 | 国产小视频免费 | 天天操狠狠干 | 日本亲与子乱xxx | 捆绑调教在线观看 | 日美韩一区二区三区 | 加勒比综合在线 | 97色在线观看 | 永久免费成人 |