python - leetcode - 547 - 모멘트
1397 단어 leetcode 알고리즘
N N 의 행렬 M 을 지정 하여 학급 중 학생 간 의 친구 관 계 를 나타 낸다.만약 에 M [i] [j] = 1 은 i 번 째 와 j 번 째 학생 이 서로 친구 가 되 는 것 을 알 고 있 음 을 나타 낸다. 그렇지 않 으 면 모른다.너 는 모든 학생 들 이 이미 알 고 있 는 친구 권 의 총 수 를 출력 해 야 한다.
예시 1:
:
[[1,1,0],
[1,1,0],
[0,0,1]]
: 2
: 0 1 , 。
2 。 2。
예시 2:
:
[[1,1,0],
[1,1,1],
[0,1,1]]
: 1
: 0 1 , 1 2 , 0 2 , , 1。
주의:
N 은 [1, 200] 의 범위 내 에 있다
4. 567917. 모든 학생 에 게 M [i] [i] = 1 이 있 습 니 다
4. 567917. M [i] [j] = 1 이 있 으 면 M [j] [i] = 1 이 있다
코드 는 다음 과 같 습 니 다:
class Solution:
def findCircleNum(self, M: 'List[List[int]]') -> 'int':
visited = [0 for _ in range(len(M))]
n = len(M)
res = 0
for i in range(n):
if visited[i] == 0:
res += 1
self.dfs(M, i, visited)
return res
def dfs(self, M, i, visited):
visited[i] = 1
for j in range(len(M)):
if M[i][j] != 0 and visited[j] == 0:
self.dfs(M, j, visited)