Path with Maximum Probability - Problem

You are given an undirected weighted graph of n nodes (0-indexed), represented by an edge list where edges[i] = [a, b] is an undirected edge connecting the nodes a and b with a probability of success of traversing that edge succProb[i].

Given two nodes start and end, find the path with the maximum probability of success to go from start to end and return its success probability.

If there is no path from start to end, return 0. Your answer will be accepted if it differs from the correct answer by at most 1e-5.

Input & Output

Example 1 — Basic Graph
$ Input: n = 3, edges = [[0,1],[1,2],[0,2]], succProb = [0.5,0.5,0.2], start = 0, end = 2
Output: 0.25000
💡 Note: Two paths exist: 0→2 (probability 0.2) and 0→1→2 (probability 0.5×0.5=0.25). Maximum is 0.25.
Example 2 — No Direct Path
$ Input: n = 3, edges = [[0,1],[1,2],[0,2]], succProb = [0.5,0.5,0.3], start = 0, end = 2
Output: 0.30000
💡 Note: Two paths: 0→2 (probability 0.3) and 0→1→2 (probability 0.5×0.5=0.25). Maximum is 0.3.
Example 3 — No Path Available
$ Input: n = 4, edges = [[0,1],[2,3]], succProb = [0.5,0.5], start = 0, end = 3
Output: 0.00000
💡 Note: Nodes 0 and 3 are in different connected components, so no path exists.

Constraints

  • 2 ≤ n ≤ 104
  • 0 ≤ start, end < n
  • start ≠ end
  • 0 ≤ edges.length ≤ 2 * 104
  • edges[i].length == 2
  • 0 ≤ ai, bi < n
  • ai ≠ bi
  • 0 < succProb[i] ≤ 1

Visualization

Tap to expand
Path with Maximum Probability INPUT 0 start 1 2 end 0.5 0.2 0.5 n = 3 edges = [[0,1],[1,2],[0,2]] succProb = [0.5, 0.5, 0.2] start = 0 end = 2 Find max probability path ALGORITHM STEPS 1 Initialize Probability prob[start]=1, others=0 2 Max-Heap Priority Queue Push (1.0, start) to heap 3 Dijkstra (Modified) Multiply probs, maximize 4 Return prob[end] Best probability found Processing Steps: Pop (1.0, 0): visit node 0 --> prob[1] = 1.0 * 0.5 = 0.5 --> prob[2] = 1.0 * 0.2 = 0.2 Pop (0.5, 1): visit node 1 --> prob[2] = 0.5 * 0.5 = 0.25 (0.25 > 0.2, update!) Pop (0.25, 2): reached end FINAL RESULT Optimal Path Found: 0 0.5 1 0.5 2 Path: 0 --> 1 --> 2 Prob: 0.5 * 0.5 Output: 0.25000 Key Insight: Modified Dijkstra's algorithm: Instead of minimizing sum of distances, we MAXIMIZE the product of probabilities. Use max-heap to always process the node with highest probability first. Time: O(E log V) TutorialsPoint - Path with Maximum Probability | Optimal Solution (Modified Dijkstra)
Asked in
Google 45 Facebook 38 Amazon 32 Microsoft 28
67.2K Views
Medium-High Frequency
~25 min Avg. Time
1.8K Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen