1# Runtime: 755 ms (Top 91.19%) | Memory: 25.4 MB (Top 98.78%)2class Solution(object):3def maxProbability(self, n, edges, succProb, start, end):4adj = [[] for i in range(n)]5dist = [sys.maxsize for i in range(n)]6heap = []7c = 08for i, j in edges:9adj[i].append([j, succProb[c]])10adj[j].append([i, succProb[c]])11c += 112heapq.heappush(heap, [-1.0, start])13dist[start] = 114while heap:15prob, u = heapq.heappop(heap)16for v, w in adj[u]:17if dist[v] > -abs(w * prob):18dist[v] = -abs(w * prob)19heapq.heappush(heap, [dist[v], v])20if sys.maxsize == dist[end]:21return 0.0000022else:23return -dist[end]