拿下技术面上传简历

一个 N×N 的 0/1 网格,N=2000(共 400 万格),0 表示可通行,1 表示障碍,允许上下左右四方向移动,每走一格算 1 步。要求从 (0,0) 走到 (N-1,N-1),给出最短步数,不可达返回 -1。内存上限 256MB。请说明你选 BFS 还是 DFS、队列和 visited 怎么设计、以及 visited 具体在什么时刻打标记。

数据结构与算法图与搜索1-3 年知识点 1 个

面试官在考什么

判断候选人是否真手写过网格 BFS,能否讲清"入队即标记"这个具体工程细节,以及会不会做内存估算。

图遍历

回答框架 · 前两步

  1. 选 BFS:无权图里 BFS 按层扩展,节点第一次被访问时的距离就是最短距离,不需要额外松弛。
  2. 队列存一维编码的格子 id(r*N+c)而不是 pair,能省内存;visited 用 bitset 或 byte 数组,4M 格约 0.5MB~4MB,dist 用 int 约 16MB。

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

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

延伸阅读

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

同一能力域的其他题