문제
https://leetcode.com/problems/minimum-score-of-a-path-between-two-cities/description/
두 도시 간 경로의 최소 점수 – LeetCode
이 실제 인터뷰 질문을 해결할 수 있습니까? 두 도시 간 경로의 최소 점수 – 1에서 n까지 번호가 매겨진 n개의 도시를 나타내는 양의 정수 n을 가져옵니다. 또한 도로(i) = (ai, bi, distancei)가 다음을 나타내는 도로의 2D 배열을 얻습니다.
leetcode.com
노드 1에서 n으로 연결되는 에지의 최소값을 찾는 문제
설명
에지 검색은 BFS 검색으로 구현됩니다.
해결책은 다음과 같습니다.
- 그래프를 이중 목록으로 구현하십시오.
- 모든 에지는 BFS 검색으로 검색됩니다.
예제 이미지에서 볼 수 있듯이 순환의 경우 이미 검색된 노드도 Edge를 확인해야 합니다. 이 점만 주의하세요.
암호
class Solution {
ArrayList<ArrayList<int()>> g;
public int minScore(int n, int()() roads) {
g = new ArrayList<>();
for(int i = 0 ;i < n+1;i ++){
g.add(new ArrayList<>());
}
for(int x() : roads){
g.get(x(0)).add(new int(){x(1), x(2)});
g.get(x(1)).add(new int(){x(0), x(2)});
}
Queue<Integer> Q = new LinkedList<>();
boolean v() = new boolean(n+1);
int ans = Integer.MAX_VALUE;
Q.offer(1);
v(1) = true;
while(!Q.isEmpty()){
int nv = Q.poll();
for(int x() : g.get(nv)){
ans = Math.min(ans, x(1));
if(!v(x(0))){
v(x(0)) = true;
Q.offer(x(0));
}
}
}
return ans;
}
}
