Leetcode C 隨手刷 547 朋友圈

2021-10-07 09:07:13 字數 829 閱讀 1148

班上有 n 名學生。其中有些人是朋友,有些則不是。他們的友誼具有是傳遞性。如果已知 a 是 b 的朋友,b 是 c 的朋友,那麼我們可以認為 a 也是 c 的朋友。所謂的朋友圈,是指所有朋友的集合。

給定乙個 n * n 的矩陣 m,表示班級中學生之間的朋友關係。如果m[i][j] = 1,表示已知第 i 個和 j 個學生互為朋友關係,否則為不知道。你必須輸出所有學生中的已知的朋友圈總數。

示例 1:

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

[1,1,0],

[0,0,1]]

輸出: 2

說明:已知學生0和學生1互為朋友,他們在乙個朋友圈。

第2個學生自己在乙個朋友圈。所以返回2。

並查集的思路會很簡單,找集合

時間複雜度n^2

//並查集 int p[i] = j 表示i的爸爸是j,根節點等於-1

//兩個節點是不是在乙個集合,看他們的根是不是一樣

class

solution

for(

int i =

0; i < n; i++)}

}int res =0;

for(

int i =

0; i < n; i++

)return res;

}int

newset

(int x)

intfind

(int x)

return t;

}int

unionset

(int x,

int y)

return t2;}}

;

刷題 力扣 547

題目鏈結 題目描述 有 n 個城市,其中一些彼此相連,另一些沒有相連。如果城市 a 與城市 b 直接相連,且城市 b 與城市 c 直接相連,那麼城市 a 與城市 c 間接相連。省份 是一組直接或間接相連的城市,組內不含其他沒有相連的城市。給你乙個 n x n 的矩陣 isconnected 其中 i...

LeetCode C 刷題 13 16題題解

羅馬數字包含以下七種字元 i,v,x,l,c,d 和 m。字元 數值 i 1 v 5 x 10 l 50 c 100 d 500 m 1000 例如,羅馬數字 2 寫做 ii 即為兩個並列的 1。12 寫做 xii 即為 x ii 27 寫做 xxvii,即為 xx v ii 通常情況下,羅馬數字中...

LeetCode C 刷題 53 56題題解

給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。高階 如果你已經實現複雜度為 o n 的解法,嘗試使用更為精妙的分治法求解。1 雙指標法 2...