題目
狀態設定:
dp[i][pos]
在第i輪,將字元ring[pos]
移動到12點位置,拼寫key[0:i]
所需要的最小步數
狀態計算:
dp[i][pos]
=min (dp[i][pos], dp[i - 1][prepos] + min(abs(prepos - pos), m - abs(prepos - pos))), for prepos ... for pos...
class
solution
map> letter2pos =
newhashmap
<
>()
;for
(int i =
0; i < m; i++
) letter2pos.
get(letter)
.add
(i);
}for
(integer pos : letter2pos.
get(key.
charat(0
)))for
(int i =
1; i < n; i++)}
}int ans = integer.max_value;
for(integer pos : letter2pos.
get(key.
charat
(n -1)
))return ans + n;}}
// dp[i][pos] 在第i輪,將字元ring[pos]移動到12點位置,拼寫key[0:i]所需要的最小步數
leetcode514 自由之路
最初,ring 的第乙個字元與12 00方向對齊。您需要順時針或逆時針旋轉 ring 以使 key 的乙個字元在 12 00 方向對齊,然後按下中心按鈕,以此逐個拼寫完 key 中的所有字元。旋轉 ring 拼出 key 字元 key i 的階段中 您可以將 ring 順時針或逆時針旋轉乙個位置,計...
514 自由之路
最初,ring 的第乙個字元與12 00方向對齊。您需要順時針或逆時針旋轉 ring 以使 key 的乙個字元在 12 00 方向對齊,然後按下中心按鈕,以此逐個拼寫完 key 中的所有字元。旋轉 ring 拼出 key 字元 key i 的階段中 您可以將 ring 順時針或逆時針旋轉乙個位置,計...
514 自由之路
最初,ring 的第乙個字元與12 00方向對齊。您需要順時針或逆時針旋轉 ring 以使 key 的乙個字元在 12 00 方向對齊,然後按下中心按鈕,以此逐個拼寫完 key 中的所有字元。旋轉 ring 拼出 key 字元 key i 的階段中 您可以將 ring 順時針或逆時針旋轉乙個位置,計...