遊戲模擬+二分搜尋法: 猜數字Guess Number_Leetcode #374 精選75題

2024/02/14閱讀時間約 8 分鐘


題目敘述

題目會給定一個猜數字的場景和介面
(包含一個可以呼叫,驗證是否為答案的API guess() function),
要求我們實現猜數字的function guessNumber(int n)。

題目已經事先設定好一個祕密數字,要求我們去找出來那個祕密數字是多少


就好像小時候玩的猜數字遊戲,一個人設定一個1~100的神祕數字,另一個人去猜是多少。每一次猜的時候,另一個(相當於這題的系統)人會告訴你猜對了,還是猜得太大,還是猜得太小

題目的原文敘述


測試範例

Example 1:

Input: n = 10, pick = 6
Output: 6

Example 2:

Input: n = 1, pick = 1
Output: 1

Example 3:

Input: n = 2, pick = 1
Output: 1

約束條件

Constraints:

  • 1 <= n <= 2^31 - 1

秘密數字的猜測範圍下邊界為1,上邊界為2^31-1

  • 1 <= pick <= n

秘密數字pick一定落在上、下邊界之內。


演算法 二分搜尋法 Binary search

這題滿直覺的,就像小時候玩猜數字的遊戲一樣,每次都先剖半猜正中間的數字。


第一回合先從區間[1, n]猜一個正中間的數字mid。


以行動支持創作者!付費即可解鎖
本篇內容共 3325 字、0 則留言,僅發佈於Leetcode 精選75題 上機考面試題 詳解你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
43會員
285內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
發表第一個留言支持創作者!