Solución

@allaeghayat_373077fa·hace 3dTypeScript
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
Respuestas

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.