<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ?LeetCode刷題實戰(zhàn)374:猜數(shù)字大小

          共 2669字,需瀏覽 6分鐘

           ·

          2021-09-13 16:08

          算法的重要性,我就不多說了吧,想去大廠,就必須要經(jīng)過基礎(chǔ)知識和業(yè)務(wù)邏輯面試+算法面試。所以,為了提高大家的算法能力,這個公眾號后續(xù)每天帶大家做一道算法題,題目就從LeetCode上面選 !

          今天和大家聊的問題叫做 猜數(shù)字大小,我們先來看題面:
          https://leetcode-cn.com/problems/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 will tell you whether the number I picked is higher or lower than your guess.

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

          -1: The number I picked is lower than your guess (i.e. pick < num).
          1: The number I picked is higher than your guess (i.e. pick > num).
          0: The number I picked is equal to your guess (i.e. pick == num).

          Return the number that I picked.

          猜數(shù)字游戲的規(guī)則如下:

          每輪游戲,我都會從 1 到 n 隨機(jī)選擇一個數(shù)字。 請你猜選出的是哪個數(shù)字。
          如果你猜錯了,我會告訴你,你猜測的數(shù)字比我選出的數(shù)字是大了還是小了。
          你可以通過調(diào)用一個預(yù)先定義好的接口 int guess(int num) 來獲取猜測結(jié)果,返回值一共有 3 種可能的情況(-1,1 或 0):

          -1:我選出的數(shù)字比你猜的數(shù)字小 pick < num
          1:我選出的數(shù)字比你猜的數(shù)字大 pick > num
          0:我選出的數(shù)字和你猜的數(shù)字一樣。恭喜!你猜對了!pick == num
          返回我選出的數(shù)字。

          示例


          示例 1:

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

          示例 2:

          輸入:n = 1, pick = 1
          輸出:1

          示例 3:

          輸入:n = 2, pick = 1
          輸出:1

          示例 4:

          輸入:n = 2, pick = 2
          輸出:2


          解題


          主要思路:
          在調(diào)用guess()方法時,返回結(jié)果這里題目描述的很不清楚,返回-1,是代表你猜的數(shù)字大了。同理,返回1,是代表你猜的數(shù)字小了。理解了這個,就可以很容易的想到使用二分查找了。
          要注意在求中間值的時候,注意使用 left + (right - left)/2 來防止溢出


          public class Solution extends GuessGame {
              public int guessNumber(int n) {
                  int left = 1;
                  int right = n;
                  while (left <= right){
                      int mid = left +(right - left)/2;
                      if(guess(mid) == 1) left = mid+1;
                      else if(guess(mid) == -1) right = mid - 1;
                      else return mid;
                  }
                  return -1;
              }
          }



          好了,今天的文章就到這里,如果覺得有所收獲,請順手點個在看或者轉(zhuǎn)發(fā)吧,你們的支持是我最大的動力 。

          上期推文:

          LeetCode1-360題匯總,希望對你有點幫助!
          LeetCode刷題實戰(zhàn)361:轟炸敵人
          LeetCode刷題實戰(zhàn)362:敲擊計數(shù)器
          LeetCode刷題實戰(zhàn)363:矩形區(qū)域不超過 K 的最大數(shù)值和
          LeetCode刷題實戰(zhàn)364:加權(quán)嵌套序列和 II
          LeetCode刷題實戰(zhàn)365:水壺問題
          LeetCode刷題實戰(zhàn)366:尋找二叉樹的葉子節(jié)點
          LeetCode刷題實戰(zhàn)367:有效的完全平方數(shù)
          LeetCode刷題實戰(zhàn)368:最大整除子集數(shù)
          LeetCode刷題實戰(zhàn)369:給單鏈表加一
          LeetCode刷題實戰(zhàn)370:區(qū)間加法
          LeetCode刷題實戰(zhàn)371:兩整數(shù)之和
          LeetCode刷題實戰(zhàn)372:超級次方
          LeetCode刷題實戰(zhàn)373:查找和最小的K對數(shù)字

          瀏覽 22
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91人妻论坛 | 日韩精品高线在线观看 | 99热日韩 | 青青青国产在线观看 | 国产丝袜足交的视频链接 |