問題:
給出數字n,在1~n中,假設設定了乙個數字x讓你猜,你猜乙個y,如果錯誤,那就收取¥y的費用,並告訴你x與y的大小關係。求出在1~n中,在最佳策略下猜出乙個x至少要花費多少。(考慮所有情況)
思路:這裡用到了dp問題的解決思想。通過遍歷猜所有數字的情況,例如n為5,猜3,那麼就將問題分成,猜1~2和4~5這兩個情況的最優花費(這兩個子問題)再加上3的消耗。再對比乙個本次最優值,記錄下這麼猜的最優值,以便復用。
**:
1class
solution
8return dp(status, 1
, n);9}
1011
int dp(int** status, int start, int
end)
19 status[start][end] =local_min;
20return
local_min;21}
22 };
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.第...