LeetCode #374 Guess Number Higher or Lower 猜數(shù)字大小

374 Guess Number Higher or Lower 猜數(shù)字大小

Description:
We are playing the Guess Game. The game is as follows:

I pick a number from 1 to n. You have to guess which number I picked.

Every time you guess wrong, I'll tell you whether the number is higher or lower.

You call a pre-defined API guess(int num) which returns 3 possible results (-1, 1, or 0):

-1 : My number is lower
 1 : My number is higher
 0 : Congrats! You got it!

Example :

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

題目描述:
我們正在玩一個(gè)猜數(shù)字游戲惑惶。 游戲規(guī)則如下:
我從 1 到 n 選擇一個(gè)數(shù)字。 你需要猜我選擇了哪個(gè)數(shù)字耗跛。
每次你猜錯(cuò)了,我會(huì)告訴你這個(gè)數(shù)字是大了還是小了已艰。
你調(diào)用一個(gè)預(yù)先定義好的接口 guess(int num)曼氛,它會(huì)返回 3 個(gè)可能的結(jié)果(-1,1 或 0):

-1 : 我的數(shù)字比較小
 1 : 我的數(shù)字比較大
 0 : 恭喜庶橱!你猜對(duì)了痒蓬!

示例 :

輸入: n = 10, pick = 6
輸出: 6

思路:

二分法
時(shí)間復(fù)雜度O(logn), 空間復(fù)雜度O(1)

代碼:
C++:

// 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 
{
public:
    int guessNumber(int n) 
    {
        int low = 1;
        while (low <= n) 
        {
            int mid = low + ((n - low) >> 1);
            if (!guess(mid)) return mid;
            else if (guess(mid) > 0) low = mid + 1;
            else n = mid - 1;
        }
        return low;
    }
};

Java:

/* The guess API is defined in the parent class GuessGame.
   @param num, your guess
   @return -1 if my number is lower, 1 if my number is higher, otherwise return 0
      int guess(int num); */

public class Solution extends GuessGame {
    public int guessNumber(int n) {
        int low = 1;
        while (low <= n) {
            int mid = low + ((n - low) >> 1);
            if (guess(mid) == 0) return mid;
            else if (guess(mid) > 0) low = mid + 1;
            else n = mid - 1;
        }
        return low;
    }
}

Python:

# The guess API is already defined for you.
# @param num, your guess
# @return -1 if my number is lower, 1 if my number is higher, otherwise return 0
# def guess(num):

class Solution(object):
    def guessNumber(self, n: int) -> int:
        low = 1
        while low <= n:
            mid = low + ((n - low) >> 1)
            if not guess(mid):
                return mid
            elif guess(mid) > 0:
                low = mid + 1
            else:
                n = mid - 1
        return low
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末童擎,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子攻晒,更是在濱河造成了極大的恐慌顾复,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鲁捏,死亡現(xiàn)場(chǎng)離奇詭異芯砸,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)给梅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門假丧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人动羽,你說(shuō)我怎么就攤上這事包帚。” “怎么了运吓?”我有些...
    開封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵渴邦,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我拘哨,道長(zhǎng)谋梭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任倦青,我火速辦了婚禮瓮床,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己纤垂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開白布磷账。 她就那樣靜靜地躺著峭沦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪逃糟。 梳的紋絲不亂的頭發(fā)上吼鱼,一...
    開封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音绰咽,去河邊找鬼菇肃。 笑死,一個(gè)胖子當(dāng)著我的面吹牛取募,可吹牛的內(nèi)容都是我干的琐谤。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼玩敏,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼斗忌!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起旺聚,我...
    開封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤织阳,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后砰粹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體唧躲,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年碱璃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了弄痹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡厘贼,死狀恐怖界酒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嘴秸,我是刑警寧澤毁欣,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站岳掐,受9級(jí)特大地震影響凭疮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜串述,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一执解、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦衰腌、人聲如沸新蟆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)琼稻。三九已至,卻和暖如春饶囚,著一層夾襖步出監(jiān)牢的瞬間帕翻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工萝风, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嘀掸,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓规惰,卻偏偏與公主長(zhǎng)得像睬塌,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子卿拴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,312評(píng)論 0 10
  • 星期五我很興奮衫仑,因?yàn)椋职侄榛ā寢屛挠獊?lái)把我、王卓曉缘挽、陳家瑞接回去了瞄崇,所以,我早早的就把行李收拾好了壕曼。 爸爸苏研、媽媽輪...
    張韜閱讀 399評(píng)論 3 4
  • 國(guó)內(nèi)首部青春勵(lì)志喜劇鋼管舞題材電影《翻滾吧姐妹》將于3月1日全國(guó)上映摹蘑,該片由馮銘潮、趙多娜轧飞、陳美行領(lǐng)銜主演衅鹿,厲娜、...
    電影是個(gè)圈閱讀 537評(píng)論 0 0
  • 高中思想政治課上老師告誡我們不要“拜金主義”,我是真聽(tīng)進(jìn)去了掸绞,總覺(jué)得談錢是一件特庸俗的事情泵三,羞于啟齒,好像金錢讓一...
    賀華文PCC教練閱讀 1,526評(píng)論 0 6
  • 我回憶,回憶這個(gè)暑假發(fā)生的一切烫幕;我拼命俺抽,拼命去記住發(fā)生的每一件溫馨小事;因?yàn)檫@個(gè)暑假较曼,對(duì)于我們而言凌埂,意義非凡。 回...
    reginali閱讀 238評(píng)論 0 1