最も遠いノード
9924 ワード
💪 最も遠いノード(プログラマ)
使用言語:C++
BFSにて実施
ノードへのアクセス時に距離をどのように追加するかを確認します
1.正解コード
✔ https://programmers.co.kr/learn/courses/30/lessons/49189
使用言語:C++
BFSにて実施
ノードへのアクセス時に距離をどのように追加するかを確認します
1.正解コード
#include <iostream>
#include <string>
#include <vector>
#include <deque>
#include <algorithm>
using namespace std;
int solution(int n, vector<vector<int>> edge) {
vector<int> graph[n+1];
//int visit[20001];
vector<int> visit(n+1, -1);
for(int i=0; i<edge.size(); i++){
graph[edge[i][0]].push_back(edge[i][1]);
graph[edge[i][1]].push_back(edge[i][0]);
visit.push_back(-1);
}
deque<int> q;
q.push_back(1);
visit[1] = 0;
while(!q.empty()){
int now = q.front();
q.pop_front();
for(int next : graph[now]){
if(visit[next] == -1){
visit[next] = visit[now] + 1;
q.push_back(next);
}
}
}
int answer = 0;
int max = *max_element(visit.begin(), visit.end());
cout << max << endl;
for(int i=1; i<n+1; i++){
if(visit[i] == max){
answer++;
}
}
return answer;
}
2.リンク✔ https://programmers.co.kr/learn/courses/30/lessons/49189
Reference
この問題について(最も遠いノード), 我々は、より多くの情報をここで見つけました https://velog.io/@hyunbeen99/가장-먼-노드テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol