拿下技术面上传简历

有向图有 3 个点 s、a、b,边为 s→a 权 1,s→b 权 2,b→a 权 -2。用标准 Dijkstra(每次从堆里取 dist 最小的未确定点)从 s 出发跑,得到的 dist[a] 是多少?正确答案是多少?请指出 Dijkstra 在这一步被打破的是哪个前提。

数据结构与算法图与搜索校招知识点 1 个

面试官在考什么

判断候选人是否理解 Dijkstra 的贪心正确性依赖非负边权,而不是只会背"不能有负权"。

最短路

回答框架 · 前两步

  1. Dijkstra 的走法:先取出 s,松弛得到 a=1、b=2;接着取出堆里 dist 最小的 a=1 并把它标记为已确定,之后 b 出队时虽能松弛出 0,但 a 已确定不再更新,因此返回 dist[a]=1。
  2. 正确答案是 0,路径为 s→b→a(2 + (-2) = 0)。

还有 3 条答案要点、 3 层追问、 4 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

延伸阅读

想看这个方向的整体准备路线? 进入「数据结构与算法」方向页

同一能力域的其他题