<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刷題實(shí)戰(zhàn)278:第一個(gè)錯(cuò)誤的版本

          共 2827字,需瀏覽 6分鐘

           ·

          2021-05-29 07:14

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

          今天和大家聊的問(wèn)題叫做 第一個(gè)錯(cuò)誤的版本,我們先來(lái)看題面:
          https://leetcode-cn.com/problems/first-bad-version/

          You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality check. Since each version is developed based on the previous version, all the versions after a bad version are also bad.

          Suppose you have n versions [1, 2, ..., n] and you want to find out the first bad one, which causes all the following ones to be bad.

          You are given an API bool isBadVersion(version) which returns whether version is bad. Implement a function to find the first bad version. You should minimize the number of calls to the API.


          你是產(chǎn)品經(jīng)理,目前正在帶領(lǐng)一個(gè)團(tuán)隊(duì)開(kāi)發(fā)新的產(chǎn)品。不幸的是,你的產(chǎn)品的最新版本沒(méi)有通過(guò)質(zhì)量檢測(cè)。由于每個(gè)版本都是基于之前的版本開(kāi)發(fā)的,所以錯(cuò)誤的版本之后的所有版本都是錯(cuò)的。

          假設(shè)你有 n 個(gè)版本 [1, 2, ..., n],你想找出導(dǎo)致之后所有版本出錯(cuò)的第一個(gè)錯(cuò)誤的版本。

          你可以通過(guò)調(diào)用 bool isBadVersion(version) 接口來(lái)判斷版本號(hào) version 是否在單元測(cè)試中出錯(cuò)。實(shí)現(xiàn)一個(gè)函數(shù)來(lái)查找第一個(gè)錯(cuò)誤的版本。你應(yīng)該盡量減少對(duì)調(diào)用 API 的次數(shù)。


          示例


          給定 n = 5,并且 version = 4 是第一個(gè)錯(cuò)誤的版本。

          調(diào)用 isBadVersion(3) -> false
          調(diào)用 isBadVersion(5) -> true
          調(diào)用 isBadVersion(4) -> true

          所以,4 是第一個(gè)錯(cuò)誤的版本。


          解題

          二分法解答

          /* The isBadVersion API is defined in the parent class VersionControl.
                boolean isBadVersion(int version); */

           
          public class Solution extends VersionControl {
            public int firstBadVersion(int n) {
              if (isBadVersion(1)) {
                return 1;
              }
           
              int max = n;
              int min = 1;
              int record = 0;
              while (min < max) {
                record = max / 2 + min / 2;
                boolean rec = isBadVersion(record);
                if (rec) {
                  max = record;
                } else {
                  min = record + 1;
                }
              }
              return min;
            }
          }


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

          上期推文:

          LeetCode1-260題匯總,希望對(duì)你有點(diǎn)幫助!
          LeetCode刷題實(shí)戰(zhàn)261:以圖判樹(shù)
          LeetCode刷題實(shí)戰(zhàn)262:行程和用戶
          LeetCode刷題實(shí)戰(zhàn)263:丑數(shù)
          LeetCode刷題實(shí)戰(zhàn)264:丑數(shù) II
          LeetCode刷題實(shí)戰(zhàn)265:粉刷房子II
          LeetCode刷題實(shí)戰(zhàn)266:回文排列
          LeetCode刷題實(shí)戰(zhàn)267:回文排列II
          LeetCode刷題實(shí)戰(zhàn)268:丟失的數(shù)字
          LeetCode刷題實(shí)戰(zhàn)269:火星詞典
          LeetCode刷題實(shí)戰(zhàn)270:最接近的二叉搜索樹(shù)值
          LeetCode刷題實(shí)戰(zhàn)271:字符串的編碼與解碼
          LeetCode刷題實(shí)戰(zhàn)272:最接近的二叉搜索樹(shù)值 II
          LeetCode刷題實(shí)戰(zhàn)273:整數(shù)轉(zhuǎn)換英文表示

          LeetCode刷題實(shí)戰(zhàn)274:H指數(shù)

          LeetCode刷題實(shí)戰(zhàn)275:H 指數(shù) II

          LeetCode刷題實(shí)戰(zhàn)276:柵欄涂色

          LeetCode刷題實(shí)戰(zhàn)277:搜尋名人


          瀏覽 33
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  黄色电影免费在线 | 天天插日日射 | 丁香五月天激情网 | 色欲av伊人久久大香线蕉影院 | 人人模人人插 |