LintCode 662 猜數遊戲 C

2021-08-10 15:56:17 字數 1349 閱讀 6351

我們正在玩猜數遊戲。 遊戲如下:

我從 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...