1514. Path with Maximum Probability
1514. Path with Maximum Probability
Description
Difficulty: Medium
Related Topics: Array, Graph, Heap (Priority Queue), Shortest Path
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.
Example 1:
1 | Input: n = 3, edges = [[0,1],[1,2],[0,2]], succProb = [0.5,0.5,0.2], start = 0, end = 2 |
Example 2:
1 | Input: n = 3, edges = [[0,1],[1,2],[0,2]], succProb = [0.5,0.5,0.3], start = 0, end = 2 |
Example 3:
1 | Input: n = 3, edges = [[0,1]], succProb = [0.5], start = 0, end = 2 |
Constraints:
2 <= n <= 10^4
0 <= start, end < n
start != end
0 <= a, b < n
a != b
0 <= succProb.length == edges.length <= 2*10^4
0 <= succProb[i] <= 1
- There is at most one edge between every two nodes.
Hints/Notes
- Dijkstra algorithm
- Since the algorithm requires positive edge weights, when dijkstra algorithm reaches the
destination, we can early return since the accumulation of edge labels along any path must
have a monotonically non-decreasing partial order
Solution
Language: C++
1 | class Solution { |