leetcode題解記錄-752開啟轉盤鎖(python3)
題目
關鍵詞
廣度優先遍歷(BFS)
程式碼記錄
BFS
class Solution:
def __init__(self):
import math
self.min_route=math.inf
self.seen={}
def openLock(self, deadends: List[str], target: str) -> int:
if '0000' in deadends:
return -1
import math
def next_step(cur_step:str)->List[str]:
res=[]
for i in range(4):
steps=[cur_step[:i]+str((int(cur_step[i])-1)%10)+cur_step[i+1:],cur_step[:i]+str((int(cur_step[i])+1)%10)+cur_step[i+1:]]
for step in steps:
if step not in deadends and step not in self.seen:
self.seen[step]=0
res.append(step)
return res
def bfs(cur_queue:List[str],cur_route:int):
to_search=[]
for i in range(len(cur_queue)):
cur_step=cur_queue[i]
if cur_step==target:
self.min_route = min(self.min_route,cur_route+1)
return
next_steps=next_step(cur_step)
to_search.extend(next_steps)
if to_search:
bfs(to_search,cur_route+1)
self.seen['0000']=0
bfs(['0000'],-1)
return -1 if self.min_route==math.inf else self.min_route
相關文章
- Leetcode 記錄 不會解的題LeetCode
- LeetCode解題記錄(雙指標專題)LeetCode指標
- leetCode解題記錄1 - 兩數之和LeetCode
- LeetCode刷題記錄與題解(C++版本)LeetCodeC++
- LeetCode刷題記錄LeetCode
- leetcode解題目錄LeetCode
- Leetcode日常記錄:NO.226 反轉二叉樹題解LeetCode二叉樹
- leetcode 解題 2.兩數相加-python3 題解LeetCodePython
- leetcode刷題記錄 661~LeetCode
- LeetCode解題記錄(貪心演算法)(二)LeetCode演算法
- LeetCode解題記錄(貪心演算法)(一)LeetCode演算法
- 在oracle查詢記錄時給記錄加鎖(轉)Oracle
- 硬碟主開機記錄詳解(轉)硬碟
- 開啟鍵盤遮住View的問題解決方法View
- 轉盤小程式首頁運營覆盤記錄
- LeetCode刷題記錄——day1LeetCode
- LeetCode刷題記錄——day2LeetCode
- LeetCode刷題記錄——day3LeetCode
- LeetCode刷題記錄——day4LeetCode
- LeetCode刷題記錄——day5LeetCode
- KeyboardCleanTool - Mac鍵盤鎖定/開啟小工具Mac
- mysql開啟日誌記錄MySql
- LeetCode-劍指Offer刷題記錄LeetCode
- LeetCode刷題(javascript,python3)LeetCodeJavaScriptPython
- 記錄一次測開面試題記錄面試題
- 膝上型電腦鍵盤鎖住了怎麼解鎖 聯想華為惠普戴爾各種筆記本鍵盤解鎖方法介紹筆記
- 詳解 MySql InnoDB 中的三種行鎖(記錄鎖、間隙鎖與臨鍵鎖)MySql
- 《dive into python3》 筆記摘錄Python筆記
- 查詢鎖表記錄
- 記錄微信,QQ分享連結後開啟有問題的Bug
- LeetCode - 解題筆記 - 7 - Reverse IntegerLeetCode筆記
- LeetCode - 解題筆記 - 12 - Integer to RomanLeetCode筆記
- 不能雙擊開啟盤的解決方法
- LeetCode 刷題記錄(16、17、18)—Java語言LeetCodeJava
- 2024-03-08 leetcode寫題記錄LeetCode
- 2024-03-14 leetcode寫題記錄LeetCode
- 2024-03-15 leetcode寫題記錄LeetCode
- Mysql加鎖過程詳解(9)-innodb下的記錄鎖,間隙鎖,next-key鎖MySql