Solución
solution.tsTypeScript
import java.util.*;
public class Solution {
public int longestPathDAG(int n, int[][] edges) {
int[][] aristasCeros = buscarAristasNodo(edges, 0);
int pesoMayor = 0;
for(int i = 0; i < aristasCeros.length; ++i){
int pesoTotal = 0;
pesoTotal = procesarCamino(aristasCeros[i], pesoTotal, edges);
System.out.println("peso total: " + pesoTotal );
pesoMayor = pesoTotal > pesoMayor ? pesoTotal : pesoMayor;
}
return pesoMayor;
}
public int procesarCamino(int[] arista, int pesoTotal, int[][] edges){
int[][] caminosConFin = buscarAristasNodo(edges, arista[1]);
if(caminosConFin.length == 0) {
return pesoTotal + arista[2];
}
int maxPesoCamino = pesoTotal + arista[2];
for(int i = 0; i < caminosConFin.length; ++i){
int resultado = procesarCamino(caminosConFin[i], pesoTotal + arista[2], edges);
if (resultado > maxPesoCamino) {
maxPesoCamino = resultado;
}
}
return maxPesoCamino;
}
public int[][] buscarAristasNodo(int[][] edges, int nodo){
List<int[]> aristas = new ArrayList<>();
for(int i = 0; i < edges.length; ++i){
if(edges[i][0] == nodo){
aristas.add(edges[i]);
}
}
return aristas.toArray(new int[aristas.size()][]);
}
}0respuestas