1. 程式人生 > 資料庫 >Redis學習—高可用之Redis-Cluster叢集

Redis學習—高可用之Redis-Cluster叢集

技術標籤:資料結構與演算法搜尋演算法dfs演算法leetcodepython

題目描述:班上有 N 名學生。其中有些人是朋友,有些則不是。他們的友誼具有是傳遞性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那麼我們可以認為 A 也是 C 的朋友。所謂的朋友圈,是指所有朋友的集合。
給定一個 N * N 的矩陣 M,表示班級中學生之間的朋友關係。如果M[i][j] = 1,表示已知第 i 個和 j 個學生互為朋友關係,否則為不知道。你必須輸出所有學生中的已知的朋友圈總數。
解題思路:搞清楚這個矩陣表示的圖的節點和邊即可,然後迴圈呼叫dfs即可

class Solution:
    def
findCircleNum(self, M: List[List[int]]) -> int: n = len(M) if n == 0: return 0 res = 0 def dfs(i): M[i][i] = 0 for j in range(n): if M[i][j] and M[j][j]: dfs(j) for i in range(n): if M[i][
i]: res += 1 dfs(i) return res