leetCode 514 自由之路

2021-10-11 01:14:50 字數 1050 閱讀 9661

題目

狀態設定:

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 順時針或逆時針旋轉乙個位置,計...