ネットワーク
プログラマ
ネットの数量を求めます
にゅうしゅつりょく
ncomputersreturn3[[1, 1, 0], [1, 1, 0], [0, 0, 1]]23[[1, 1, 0], [1, 1, 1], [0, 1, 1]]1
方法
インデックスでアクセスします.iの1番目の要素のネットワークを表示するには、iの1番目の配列を表示します.
アクセスするテーブルを配置し、i配列の要素を迂回し、アクセス値が1のインデックスjにする.
隣接する場合、while文の終了時にアクセスするテーブルはすべて1です.そうしないと、非隣接インデックスは0になります.
アクセス値が0のインデックスに対して関数を実行します.関数が終了すると、カウントが報告されます.
コード#コード#
from collections import deque
def bfs(n, i, computers, visited):
q = deque()
visited[i] = 1
q.append(i)
while q:
v = q.popleft()
for j in range(len(computers[v])):
if computers[v][j] == 1 and visited[j] == 0:
visited[j] = 1
q.append(j)
def solution(n, computers):
visited = [0]*n
cnt = 0
for i in range(len(computers)):
if visited[i] == 0:
bfs(n, i, computers, visited)
cnt += 1
return cnt
Reference
この問題について(ネットワーク), 我々は、より多くの情報をここで見つけました https://velog.io/@sezeom/네트워크テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol