题解 | #【模板】单源最短路2#

【模板】单源最短路2

https://www.nowcoder.com/practice/7c1740c3d4ba4b3486df4847ee6e8fc7

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    let [n,m]=(await readline()).split(" ").map(it=>parseInt(it));
    let INF=+Infinity;
    let mat=new Array(5001).fill(0).map(()=>new Array(5001).fill(INF));
    while(m--){
        let [u,v,w]=(await readline()).split(" ").map(it=>parseInt(it));
        mat[u][v]=w;
        mat[v][u]=w;
    }
    let dist=new Array(5001).fill(INF);
    dist[1]=0;
    let vis=new Array(5001).fill(false);
    for(let i=1;i<=5000;i++){
        let x=-1;
        for(let y=1;y<=5000;y++){
            if(!vis[y]&&(x==-1||dist[y]<dist[x])){
                x=y;
            }
        }
        vis[x]=true;
        for(let y=1;y<=5000;y++){
            if(mat[x][y]==INF) continue;
            if(!vis[y]) dist[y]=Math.min(dist[y],dist[x]+mat[x][y]);
        }
    }
    console.log(dist[n]==INF?-1:dist[n]);
}()

#dijkstra,贪心,bfs,最短路#
全部评论

相关推荐

面了这么多场试,总有公司总喜欢压力面一个小时面试+手撕,哪里不会就点哪里,说了不会不会还继续追着问不尊重求职者,稍微有些细节记不清了,就开始怀疑项目真实性以及人格让求职者开摄像头但是自己不开,说话声音还贼小,pardon几次就开始不耐烦的不知道这个算不算,手撕的时候,面试官人跑了。。。最后快结束才来
一纸丿繁华丶:你换位思考一下,自己在职场被领导push麻了,身心俱疲,现在有个机会让你放松一下,体验一把上位者的感觉,还能看着那些高学历人才、未来自己的竞争者,抓耳挠腮、手足无措的样子,没给你当场笑出来就不错了,理解一下面试官吧。
点赞 评论 收藏
分享
05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务