375 猜數字大小 II

2022-09-08 09:48:11 字數 1094 閱讀 7326

我們正在玩乙個猜數遊戲,遊戲規則如下:

我從 1 到 n 之間選擇乙個數字。

你來猜我選了哪個數字。

如果你猜到正確的數字,就會 贏得遊戲 。

如果你猜錯了,那麼我會告訴你,我選的數字比你的 更大或者更小 ,並且你需要繼續猜數。

每當你猜了數字 x 並且猜錯了的時候,你需要支付金額為 x 的現金。如果你花光了錢,就會 輸掉遊戲 。

給你乙個特定的數字 n ,返回能夠 確保你獲勝 的最小現金數,不管我選擇那個數字 。

dp不可能dp的,只會暴搜吃吃爛分

1

class

solution:

2def getmoneyamount(self, n: int) ->int:

3 self.dict ={}

4return

self.search(0, n)56

defsearch(self, left, right):

7if right <=left:

8return09

10if

self.dict.get((left, right), false):

11return

self.dict.get((left, right))

1213

#split_index = self.find_split_index(nums)

14 max_cost = float('

inf')15

16for split_index in range(left, right + 1):

17 cost =split_index

18 cost += max(self.search(left, split_index - 1), self.search(split_index + 1, right))

19 max_cost =min(max_cost, cost)

20 self.dict[(left, right)] =max_cost

2122

return max_cost

375 猜數字大小 II

我們正在玩乙個猜數遊戲,遊戲規則如下 我從1到n之間選擇乙個數字,你來猜我選了哪個數字。每次你猜錯了,我都會告訴你,我選的數字比你的大了或者小了。然而,當你猜了數字 x 並且猜錯了的時候,你需要支付金額為 x 的現金。直到你猜到我選的數字,你才算贏得了這個遊戲。示例 n 10,我選擇了8.第一輪 你...

375 猜數字大小 II

我們正在玩乙個猜數遊戲,遊戲規則如下 我從1到n之間選擇乙個數字,你來猜我選了哪個數字。每次你猜錯了,我都會告訴你,我選的數字比你的大了或者小了。然而,當你猜了數字 x 並且猜錯了的時候,你需要支付金額為 x 的現金。直到你猜到我選的數字,你才算贏得了這個遊戲。示例 n 10,我選擇了8.第一輪 你...

375 猜數字大小 II

我們正在玩乙個猜數遊戲,遊戲規則如下 我從 1 到 n 之間選擇乙個數字,你來猜我選了哪個數字。每次你猜錯了,我都會告訴你,我選的數字比你的大了或者小了。然而,當你猜了數字 x 並且猜錯了的時候,你需要支付金額為 x 的現金。直到你猜到我選的數字,你才算贏得了這個遊戲。示例 n 10,我選擇了8.第...