我們正在玩猜數遊戲。 遊戲如下:我從 1 到 n 選擇乙個數字。 你需要猜我選擇了哪個號碼。
每次你猜錯了,我會告訴你這個數字是高還是低。
你呼叫乙個預定義的介面 guess(int num),它會返回 3 個可能的結果(-1,1或0):
// forward declaration of guess api.
// @param num, your guess
// @return -1 if my number is lower, 1 if my number is higher, otherwise return 0
int guess(int num);
class
solution
};
這道題其實可以看成乙個查詢演算法(查詢那個你要猜的數)。在這裡我用的折半查詢(平均時間複雜度為o(log2n))
// forward declaration of guess api.
// @param num, your guess
// @return -1 if my number is lower, 1 if my number is higher, otherwise return 0
int guess(int num);
class
solution else
if(r == -1) else }}
};
執行之後顯示錯誤time limit exceeded,然後顯示的測試資料是2147483647,而這個數就是int型資料能儲存的最大的數。這是因為low + high
會出現超出int型資料型別儲存範圍,導致超限的數字變成負數進而造成死迴圈。所以做一下修改:
// forward declaration of guess api.
// @param num, your guess
// @return -1 if my number is lower, 1 if my number is higher, otherwise return 0
int guess(int num);
class
solution else
if(r == -1) else }}
};
LintCode 666 猜數遊戲 II
我們正在玩猜數遊戲,遊戲內容如下 我在 1到 n 的範圍內選擇乙個數作為待猜的數,你需要來猜這個數,每次你猜錯的時候,我會告訴你我選擇的這個數是比你說的數要高還是低,但是,當你猜這個數為 x 並且猜錯的時候你需要支付 x.當你猜到我選擇的數時,你將贏得這場遊戲 樣例給出 n 10,我選擇待猜數為 8...
1995猜數遊戲
猜數遊戲 time limit 1 seconds memory limit 32768 k total submit 70 accepted 11 description 我們經常看到這樣的遊戲,機器隨機產生乙個4個不同的數字,然後你輸入4個不同數字,然後機器自動判斷你輸入的4個數字有多少個數字猜...
簡單猜數遊戲
2.計算機隨機生成乙個1024之內的整數,請你猜這個數,如果猜錯了,計算機會提示你大了還是小了,你一共只有十次機會,如果十次沒猜到 則提示 失敗 如果十次之內猜對則提示 你真聰明 c using system using system.collections.generic using system...