Leetcode1514 概率最大的路径
dijkstra算法回顾
可以参考我之前基于cs61b的博客总结: CS61BSpring2019笔记1: 图的最短路径以及最小生成树.
证明的话个人认为如果能够想明白无论是最大概率还是最短路径,每次被释放的节点一定是从start结点到该节点的最优路径的结果。
题目描述
Leetcode1514:链接.
邻接表图 + dijkstra算法
//Java
class Solution {
public double maxProbability(int n, int[][] edges, double[] succProb, int start, int end) {
//通过邻接表构建图,注意创建泛型数组时候的处理
LinkedList<double[]>[] graph = new LinkedList[n];
for (int i = 0; i < n; i++) {
graph[i] = new LinkedList<>();
}
//加入每个节点的邻居元素 这里采用数组[节点,概率]来表示