题目描述
思路解析动画文字版
记住:每条边只差一个字母,BFS 逐层保证第一次到达就是最短。
先把 10 个词全摆上:节点=单词,两词相差一个字母就连边。还没开始搜,全是灰的。
起点 hit 入队,dist=1(它是序列第 1 个词)。队列:[hit]。
出队 hit(标记为正在访问),看它能一步变成哪些还没访问过的词。
hit 改一个字母可得 hot(走这条边),它的 dist = hit 的层 +1 = ②,入队。队列:[hot]。
hit 改一个字母可得 hut(走这条边),它的 dist = hit 的层 +1 = ②,入队。队列:[hot, hut]。
hit 改一个字母可得 lit(走这条边),它的 dist = hit 的层 +1 = ②,入队。队列:[hot, hut, lit]。
出队 hot(标记为正在访问),看它能一步变成哪些还没访问过的词。
hot 改一个字母可得 dot(走这条边),它的 dist = hot 的层 +1 = ③,入队。队列:[hut, lit, dot]。
hot 改一个字母可得 lot(走这条边),它的 dist = hot 的层 +1 = ③,入队。队列:[hut, lit, dot, lot]。
hot 改一个字母可得 bot(走这条边),它的 dist = hot 的层 +1 = ③,入队。队列:[hut, lit, dot, lot, bot]。
出队 hut(标记为正在访问),看它能一步变成哪些还没访问过的词。
出队 lit(标记为正在访问),看它能一步变成哪些还没访问过的词。
出队 dot(标记为正在访问),看它能一步变成哪些还没访问过的词。
dot 改一个字母可得 dog(走这条边),它的 dist = dot 的层 +1 = ④,入队。队列:[lot, bot, dog]。
出队 lot(标记为正在访问),看它能一步变成哪些还没访问过的词。
lot 改一个字母可得 log(走这条边),它的 dist = lot 的层 +1 = ④,入队。队列:[bot, dog, log]。
出队 bot(标记为正在访问),看它能一步变成哪些还没访问过的词。
bot 改一个字母可得 bog(走这条边),它的 dist = bot 的层 +1 = ④,入队。队列:[dog, log, bog]。
出队 dog(标记为正在访问),看它能一步变成哪些还没访问过的词。
dog 改一个字母可得 cog(走这条边),它的 dist = dog 的层 +1 = ⑤,入队。队列:[log, bog, cog]。
出队 log(标记为正在访问),看它能一步变成哪些还没访问过的词。
出队 bog(标记为正在访问),看它能一步变成哪些还没访问过的词。
出队 cog —— 正是终点!它的 dist=⑤,即最短序列共 5 个词。BFS 第一次到达就是最短,搜索结束。
最短转换链:hit → hot → dot → dog → cog,共 5 个词。每相邻两词只差一个字母(一条边),这就是 hit 变到 cog 的最少步数。
边界先想清。
两个高频追问。
参考代码
from collections import dequedef ladderLength(begin, end, wordList): ws = set(wordList) if end not in ws: return 0 q = deque([(begin, 1)]) seen = {begin} while q: w, d = q.popleft() if w == end: return d for i in range(len(w)): for c in 'abcdefghijklmnopqrstuvwxyz': nx = w[:i] + c + w[i+1:] if nx in ws and nx not in seen: seen.add(nx); q.append((nx, d + 1)) return 0复杂度
- 时间:O(N·L·26),N 个词 × 每词 L 位 × 26 字母
- 空间:O(N),词集 + 队列 + 已访问
易错点
面试追问把动画讲成自己的话
追问如何加速到双向 BFS?
追问LC126 要输出所有最短路径怎么办?
这道题到这就讲完了。动画和文字是同一套思路——别光看,关掉页面自己默写一遍。然后顺着主线继续:
除法求值
LeetCode 399 · 中等 · 沿着 图 继续往下推进
把这道题真正学会,再走
图解算法年卡 ¥99 /年
- ✓本题每步动画的吴师兄语音讲解(全站陆续覆盖)
- ✓小欧带 8 步通关训练——追问到不看答案也能写对、能 30 秒讲给面试官听
- ✓学习报告,记录每道题的掌握程度
76k+ GitHub Star · 吴师兄开源图解算法,几十万开发者在看的算法讲解
想成体系刷透这类套路?去图解算法专题