Leetcode 1325 Solution

This article provides solution to leetcode question 1325 (path-with-maximum-probability)

https://leetcode.com/problems/path-with-maximum-probability

Solution

class Solution: def maxProbability(self, n: int, edges: List[List[int]], succProb: List[float], start: int, end: int) -> float: graph = collections.defaultdict(list) for (src, dst), prob in zip(edges, succProb): graph[src].append((dst, prob)) graph[dst].append((src, prob))
q = [] heapq.heappush(q, (-1, start)) visited = set()
while q: node_prob, node = heapq.heappop(q)
if node in visited: continue
if node == end: return -node_prob
visited.add(node)
for nei_node, prob in graph[node]: if nei_node in visited: continue
heapq.heappush(q, (node_prob * prob, nei_node))
return 0