Java Dijkstra算法的类实现

Java Dijkstra算法的类实现,java,algorithm,graph-algorithm,dijkstra,Java,Algorithm,Graph Algorithm,Dijkstra,我正在尝试解决HackerRank上的一个问题,我尝试过解决它,我发现它的距离为-2149088,尽管我的逻辑有问题,最重要的是在while循环中。有人能指出我的错误吗?我是noob:谢谢。链接到问题陈述HackerRank: 如果将dist设置为Integer.MAX_值,然后在此处进行检查: if(nodes[j].dist>q.dist+adj[id][j]){ nodes[j].dist = q.d

我正在尝试解决HackerRank上的一个问题,我尝试过解决它,我发现它的距离为-2149088,尽管我的逻辑有问题,最重要的是在while循环中。有人能指出我的错误吗?我是noob:谢谢。链接到问题陈述HackerRank:


如果将dist设置为Integer.MAX_值,然后在此处进行检查:

                    if(nodes[j].dist>q.dist+adj[id][j]){
                      nodes[j].dist = q.dist+adj[id][j];

                    }
那么节点[j].dist总是大于q.dist+adj[id][j],因为MAX_值+adj[id][j]<0。存在整数溢出,并将溢出的值分配给节点[j].dist


我希望能有所帮助。

我不知道我的代码有什么问题,这太模糊了。你应该集中精力解决你的问题,而不是转储代码,然后写它不起作用……明白了!问题是我忘记了没有连接到图形的节点。所以我必须在代码中把q的距离设为无穷大,设为0。谢谢你
                    if(nodes[j].dist>q.dist+adj[id][j]){
                      nodes[j].dist = q.dist+adj[id][j];

                    }