LeetCode 752. 打开转盘锁(图的BFS最短路径)
1. 題目
你有一個(gè)帶有四個(gè)圓形撥輪的轉(zhuǎn)盤鎖。每個(gè)撥輪都有10個(gè)數(shù)字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每個(gè)撥輪可以自由旋轉(zhuǎn):例如把 ‘9’ 變?yōu)?‘0’,‘0’ 變?yōu)?‘9’ 。每次旋轉(zhuǎn)都只能旋轉(zhuǎn)一個(gè)撥輪的一位數(shù)字。
鎖的初始數(shù)字為 ‘0000’ ,一個(gè)代表四個(gè)撥輪的數(shù)字的字符串。
列表 deadends 包含了一組死亡數(shù)字,一旦撥輪的數(shù)字和列表里的任何一個(gè)元素相同,這個(gè)鎖將會(huì)被永久鎖定,無法再被旋轉(zhuǎn)。
字符串 target 代表可以解鎖的數(shù)字,你需要給出最小的旋轉(zhuǎn)次數(shù),如果無論如何不能解鎖,返回 -1。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/open-the-lock
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
2. BFS解題
- 圖的廣度優(yōu)先搜索
- 0000入隊(duì),然后他的8種可能的走法若不在死亡數(shù)字中就接著入隊(duì)
- 記錄走過了多少層
總結(jié)
以上是生活随笔為你收集整理的LeetCode 752. 打开转盘锁(图的BFS最短路径)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 523. 连续的子数组
- 下一篇: LeetCode 842. 将数组拆分成