Re: [閒聊] 每日leetcode

作者: Rushia (みけねこ的鼻屎)   2024-04-27 12:34:12
https://leetcode.com/problems/freedom-trail/description
514. Freedom Trail
https://assets.leetcode.com/uploads/2018/10/22/ring.jpg
給你一個字串ring表示一個轉盤的文字順序,key 表示密碼,我們可以有兩個操作:
1. 把轉盤往左或往右
2. 把轉盤當前的密碼輸入
求出最少要幾個操作可以把密碼輸入完,題目保證密碼字元一定存在於ring
思路:
1.輸入密碼最少要len(key)次
2.我先往是否可以貪婪想,也就是局部最佳解是否可以得到全域最佳解,反例:
A
B C
B
如果左邊的B比較近 右邊的B比較遠但是離C比較近 他會是更佳解 所以局部最佳解
不能決定全域最佳解 需要窮舉
3.模擬轉盤往左和往右,最少要轉的步數為:
MIN(
往左轉找到key需要的步數 + 從左邊位置繼續找下一個,
往右轉找到key需要的步數 + 從右邊位置繼續找下一個
)
因為會有許多重複步驟所以需要DP(記憶化搜索)
4.返回輸入密碼的次數+轉盤的最小次數
py code:
作者: SecondRun (雨夜琴聲)   2024-04-27 12:40:00
大師
作者: oinishere (是oin捏)   2024-04-27 12:42:00
我好痛苦 怎麼是hard
作者: JIWP (JIWP)   2024-04-27 12:43:00
大師

Links booklink

Contact Us: admin [ a t ] ucptt.com