leetcode547(省份數量 並查集)

2021-10-14 04:10:12 字數 941 閱讀 7766

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

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

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

返回矩陣中 省份 的數量。

輸入:isconnected = [[1,1,0],[1,1,0],[0,0,1]]

輸出:2

題中所給的城市鄰接關係是一張無向圖,陣列isconnected是這張無向圖的鄰接矩陣,這道題本質上是要我們求這張無向圖的極大連通子圖的數量。對於找到無向圖中的極大連通子圖,我們可以使用並查集的方式,合併存在鄰接關係的兩座城市,最後,判斷極大連通子圖的個數。

class

solution

for(

int i =

0; i < provinces; i++)}

}int circles =0;

//找連通子圖數量

for(

int i =

0; i < provinces; i++)}

return circles;

}//合併處於同一連通子圖的兩點

public

void

union

(int

parent,

int index1,

int index2)

//查詢根節點

public

intfind

(int

parent,

int index)

return index;

}}

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