[LeetCode-Easy]374. -猜數(shù)Guess Number Higher or Lower字大小

題目:

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:

?n = 10,I pick 6.
??Return 6.

實(shí)力吐槽!這題其實(shí)本質(zhì)上非常簡(jiǎn)單,簡(jiǎn)單的不要不要的,但是看懂題實(shí)在太費(fèi)勁了,以致于筆者花了一個(gè)小時(shí)丰滑!是一個(gè)小時(shí)!!才把這題的“你砚亭、我”這倆人稱(chēng)看明白!殴玛!

M北臁!滚粟!這就是個(gè)二分查找Q罢獭!凡壤!

不好意思一不小心師太了~~這題確實(shí)理解上容易出問(wèn)題愧沟。接下來(lái)好好說(shuō)思路,避免大家也因?yàn)轭}意影響到編程鲤遥。

思路:

這題的意思是沐寺,我們兩個(gè)人玩猜數(shù)游戲。我從1到n里面選擇一個(gè)數(shù)字盖奈,你來(lái)猜混坞。每次你猜錯(cuò)的時(shí)候呢,我就會(huì)告訴你,你猜大了究孕,或者猜小了啥酱,直到你猜對(duì)為止!類(lèi)似于一些真人秀設(shè)置的游戲規(guī)則厨诸。镶殷。。
注意微酬!這里他告訴我們他已經(jīng)寫(xiě)好了一個(gè)接口guess(int num)绘趋,有三個(gè)返回值:這里我好好翻譯一下
返回-1,代表我們選的數(shù)字比對(duì)方猜的
返回** 1颗管,代表我們選的數(shù)字比對(duì)方猜的大**
返回** 0**陷遮,代表你猜對(duì)了
還有!他給我們準(zhǔn)備的代碼里:guessNumber(int n)垦江,這個(gè)n是我們?cè)O(shè)置的最大數(shù)帽馋,不是他猜的,是讓我們?cè)O(shè)置好最大數(shù)比吭,他猜數(shù)字绽族,比如他猜了6,那結(jié)果就需要返回6衩藤,不過(guò)中間要有判斷的過(guò)程项秉。

好的我們整理一下我們要做的事情:我們?cè)O(shè)置最大數(shù)字,對(duì)方猜慷彤,我們只能給他反饋他猜大了或者猜小了娄蔼。那他猜的過(guò)程是什么樣的呢?那就要由我們來(lái)編譯了底哗!這里推薦使用折半的方法岁诉。我在代碼里盡量設(shè)置清楚備注。

  public class Solution extends GuessGame {
  public int guessNumber(int n) {
      //如果設(shè)置的最大數(shù)字他直接猜對(duì)了跋选,那就可以直接返回這個(gè)最大數(shù)了
      if(guess(n)==0) {
          return n;
      }
      int low = 1;
      int high = n;
      while(low<high){
          //這里的mid不可以使用 int mid = (low+high)/2;
          int mid = low + (high-low)/2;
          int res = guess(mid);
          if(res==0) {
          //如果對(duì)方猜對(duì)了直接輸出~
              return mid;
          }else if(res == 1){
              //如果對(duì)方猜的數(shù)字涕癣,比我們?cè)O(shè)置的數(shù)字小前标!那就把mid賦值給low坠韩,讓對(duì)方下次猜的數(shù)變大~
              low = mid+1;
          }else {
              //其余情況只有對(duì)方猜的數(shù)字,比我們?cè)O(shè)置的數(shù)字大炼列!那就把mid賦值給high只搁,讓對(duì)方下次猜的數(shù)變小~
              high = mid-1;
          }
      }
       //最后如果在while中,沒(méi)有猜對(duì)(基本上不可能)俭尖!那他猜的這個(gè)數(shù)字氢惋,一定是現(xiàn)在的low了~~
      return low;
  }

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末洞翩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子焰望,更是在濱河造成了極大的恐慌骚亿,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,949評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熊赖,死亡現(xiàn)場(chǎng)離奇詭異来屠,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)震鹉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,772評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)俱笛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人足陨,你說(shuō)我怎么就攤上這事嫂粟〗课矗” “怎么了墨缘?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,419評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)零抬。 經(jīng)常有香客問(wèn)我镊讼,道長(zhǎng),這世上最難降的妖魔是什么平夜? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,812評(píng)論 1 285
  • 正文 為了忘掉前任蝶棋,我火速辦了婚禮,結(jié)果婚禮上忽妒,老公的妹妹穿的比我還像新娘玩裙。我一直安慰自己,他們只是感情好段直,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,927評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布吃溅。 她就那樣靜靜地躺著,像睡著了一般鸯檬。 火紅的嫁衣襯著肌膚如雪决侈。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 50,102評(píng)論 1 291
  • 那天喧务,我揣著相機(jī)與錄音赖歌,去河邊找鬼。 笑死功茴,一個(gè)胖子當(dāng)著我的面吹牛庐冯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播坎穿,決...
    沈念sama閱讀 39,171評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼肄扎,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起犯祠,我...
    開(kāi)封第一講書(shū)人閱讀 37,921評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤旭等,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后衡载,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體搔耕,經(jīng)...
    沈念sama閱讀 44,366評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,675評(píng)論 2 327
  • 正文 我和宋清朗相戀三年痰娱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了弃榨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,820評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡梨睁,死狀恐怖鲸睛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情坡贺,我是刑警寧澤官辈,帶...
    沈念sama閱讀 34,523評(píng)論 4 335
  • 正文 年R本政府宣布,位于F島的核電站遍坟,受9級(jí)特大地震影響拳亿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜愿伴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,162評(píng)論 3 317
  • 文/蒙蒙 一肺魁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧隔节,春花似錦鹅经、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,885評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至刽虹,卻和暖如春酗捌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背涌哲。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,126評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工胖缤, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人阀圾。 一個(gè)月前我還...
    沈念sama閱讀 46,647評(píng)論 2 362
  • 正文 我出身青樓哪廓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親初烘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子涡真,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,732評(píng)論 2 351

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