寻找有向无环图中的最长路径(JAVA+动态规划)
给出了一个具有n个顶点和m个边的有向图G。任务是找出图中最长有向路径的长度。
注:有向路径的长度是指路径中的边数。
例如:下图中有4个顶点,5条边。
最长的有向路径的长度为 3。
从1到3,到2,到4。
算法实现
package com.bean.algorithm.graph;
import java.util.ArrayList;
public class LongestPathDirectedAcyclicGraph {
int vertices;
ArrayList<Integer> edge[];
LongestPathDirectedAcyclicGraph(int vertices) {
this.vertices = vertices;
edge = new ArrayList[vertices + 1];
for (int i = 0; i <= vertices; i++) {
edge[i] = new ArrayList<>();
}
}
void addEdge(int a, int b) {
edge[a].add(b);
}
void dfs(int node, ArrayList<Integer> adj[], int dp[], boolean visited[]) {
// 标