중간 주제 : 깊이 우선 검색, 폭이 넓은 검색, Union Find, Graph
이 문제에서 나무는 방향이없는 그래프 로 연결되어 있고 사이클이 없습니다.
당신은 1에서 n까지의 n 노드가있는 트리로 시작된 그래프가 주어지고, 하나는 추가로 에지가 추가되었습니다. 추가 된 가장자리에는 1에서 n까지 선택된 두 개의
입력 : 가장자리 = [[1,2], [1,3], [2,3]]
출력 :[2,3] 예제 2 : 입력 : 가장자리 = [[1,2], [2,3], [3,4], [1,4], [1,5]] 출력 : [1,4]
제약 조건 :
i & lt; = edges.length
ai i
및 연결
가 나타나는 가장자리를 반환해야합니다.
계획
예제 연습
<?php /** * @param Integer[][] $edges * @return Integer[] */ function findRedundantConnection($edges) { ... ... ... /** * go to ./solution.php */ } /** * Helper function to perform DFS and check connectivity * * @param $src * @param $target * @param $visited * @param $adjList * @return bool */ private function isConnected($src, $target, &$visited, &$adjList) { ... ... ... /** * go to ./solution.php */ } // Example usage: $edges1 = [[1,2],[1,3],[2,3]]; $edges2 = [[1,2],[2,3],[3,4],[1,4],[1,5]]; print_r(findRedundantConnection($edges1)) . "\n"; // Output: [2,3] print_r(findRedundantConnection($edges2)) . "\n"; // Output: [1,4] ?>
추가 [1, 3] → 그래프 : {1 : [2, 3], 2 : [1], 3 : [1]} 체크 [2, 3] : DFS는 경로를 찾습니다 → return [2, 3].
추가 [2, 3] → 그래프 : {1 : [2], 2 : [1, 3], 3 : [2]} 추가 [3, 4] → 그래프 : {1 : [2], 2 : [1, 3], 3 : [2, 4], 4 : [3]} 확인 [1, 4] : DFS는 경로를 찾습니다 → return [1, 4].
dfs Traversal
:
공간 복잡성 :
인접성 목록 :
예제의 출력
위 내용은 . 중복 연결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!