leetcode 省份數量

2021-10-14 04:16:32 字數 729 閱讀 6183

有 n 個城市,其中一些彼此相連,另一些沒有相連。如果城市 a 與城市 b 直接相連,且城市 b 與城市 c 直接相連,那麼城市 a 與城市 c 間接相連。

省份 是一組直接或間接相連的城市,組內不含其他沒有相連的城市。

給你乙個 n x n 的矩陣 isconnected ,其中 isconnected[i][j] = 1 表示第 i 個城市和第 j 個城市直接相連,而 isconnected[i][j] = 0 表示二者不直接相連。

返回矩陣中 省份 的數量。

簡要題解

顯然可以看出這是乙個並查集的模板題 直接把相互連通的放在乙個組內即可。

並查集部分主要**如下 首先初始化**假設為乙個森林主要**如下

void

init()

找祖先**主要如下

int find

(int x)

合併的**如下

void

union

(int x,int y)

該題主要**如下所示

class

solution

int findcirclenum

(vector>

& isconnected)

}return ans;}}

;

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...

leetcode之路 547 省份數量

以上所有問題,抽象,概括為分組問題 大家主要了解一下並查集的兩種優化方法,路徑壓縮使得所有節點在被查詢過後都直接連在根節點上 這樣下次查詢的時候就可以o 1 查到他屬於哪個組 按深度合併分組可以保證樹的深度不會過分增長。這個題可謂練手並查集的好題目 如下class solution 找到某個節點的根...