java.lang.Object
g0801_0900.s0847_shortest_path_visiting_all_nodes.Solution

public class Solution extends Object
847 - Shortest Path Visiting All Nodes.<p>Hard</p> <p>You have an undirected, connected graph of <code>n</code> nodes labeled from <code>0</code> to <code>n - 1</code>. You are given an array <code>graph</code> where <code>graph[i]</code> is a list of all the nodes connected with node <code>i</code> by an edge.</p> <p>Return <em>the length of the shortest path that visits every node</em>. You may start and stop at any node, you may revisit nodes multiple times, and you may reuse edges.</p> <p><strong>Example 1:</strong></p> <p><img src="https://assets.leetcode.com/uploads/2021/05/12/shortest1-graph.jpg" alt="" /></p> <p><strong>Input:</strong> graph = [[1,2,3],[0],[0],[0]]</p> <p><strong>Output:</strong> 4</p> <p><strong>Explanation:</strong> One possible path is [1,0,2,0,3]</p> <p><strong>Example 2:</strong></p> <p><img src="https://assets.leetcode.com/uploads/2021/05/12/shortest2-graph.jpg" alt="" /></p> <p><strong>Input:</strong> graph = [[1],[0,2,4],[1,3,4],[2],[1,2]]</p> <p><strong>Output:</strong> 4</p> <p><strong>Explanation:</strong> One possible path is [0,1,4,2,3]</p> <p><strong>Constraints:</strong></p> <ul> <li><code>n == graph.length</code></li> <li><code>1 <= n <= 12</code></li> <li><code>0 <= graph[i].length < n</code></li> <li><code>graph[i]</code> does not contain <code>i</code>.</li> <li>If <code>graph[a]</code> contains <code>b</code>, then <code>graph[b]</code> contains <code>a</code>.</li> <li>The input graph is always connected.</li> </ul>
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • shortestPathLength

      public int shortestPathLength(int[][] graph)