以上所有問題,抽象,概括為分組問題
大家主要了解一下並查集的兩種優化方法,路徑壓縮使得所有節點在被查詢過後都直接連在根節點上(這樣下次查詢的時候就可以o(1)查到他屬於哪個組),按深度合併分組可以保證樹的深度不會過分增長。這個題可謂練手並查集的好題目
**如下
class solution
}/**
* 找到某個節點的根節點(他屬於哪一組?)
*/int find(int x)
/*** 合併兩個分組
*/void merge(int a, int b)
}public:
int findcirclenum(vector>& isconnected) }}
setans;
for(int i = 0; i < n; i++)ans.insert(find(i));//set去一下重,查一下有多少個不同的分組就是多少個省了
return ans.size();
}};
LeetCode 547 省份數量
題目鏈結 有 n 個城市,其中一些彼此相連,另一些沒有相連。如果城市 a 與城市 b 直接相連,且城市 b 與城市 c 直接相連,那麼城市 a 與城市 c 間接相連。省份 是一組直接或間接相連的城市,組內不含其他沒有相連的城市。給你乙個 n x n 的矩陣 isconnected 其中 isconn...
LeetCode 547 省份數量
有 n 個城市,其中一些彼此相連,另一些沒有相連。如果城市 a 與城市 b 直接相連,且城市 b 與城市 c 直接相連,那麼城市 a 與城市 c 間接相連。省份 是一組直接或間接相連的城市,組內不含其他沒有相連的城市。給你乙個 n x n 的矩陣 isconnected 其中 isconnected...
547 省份數量
有 n 個城市,其中一些彼此相連,另一些沒有相連。如果城市 a 與城市 b 直接相連,且城市 b 與城市 c 直接相連,那麼城市 a 與城市 c 間接相連。省份 是一組直接或間接相連的城市,組內不含其他沒有相連的城市。給你乙個 n x n 的矩陣 isconnected 其中 isconnected...