Python 中的第一個錯誤版本


假設在一家公司裡,一名產品經理帶領著一個團隊開發一款新產品。假設最新版本未透過質量檢查。由於每個版本都是在前一個版本的基礎上開發的,所以錯誤版本之後的所有版本都會錯誤。因此我們有一個元素為 [1, 2, … n] 的陣列 A,我們必須從這個陣列中找到第一個錯誤版本。

考慮我們有一個函式 isBadVersion(version_id),它將返回版本是好還是壞。例如,假設 n = 5,版本 = 4 是第一個錯誤版本。因此如果 isBadVersion(3) 返回 false,isBadVersion(5) 返回 true,isBadVersion(4) 也返回 true,那麼第一個錯誤版本就是 4

為了解決這個問題,我們將遵循以下步驟 -

  • 當 n < 2 時,返回 n
  • 使用給定的函式執行二分搜尋方法來檢測錯誤版本。

示例

讓我們看看以下實現以更好地理解 -

 線上演示

first_bad = 0
def isBadVersion(version):
   if version >= first_bad:
      return True
   return False
class Solution:
   def firstBadVersion(self, n):
      if n <2:
         return n
      start = 1
      end = n
      while(start<=end):
         mid = (start+end)//2
         if isBadVersion(mid) and not isBadVersion(mid-1):
            return mid
         elif isBadVersion(mid-1):
            end = mid-1
         else:
            start = mid+1
ob1 = Solution()
first_bad = 4
op = ob1.firstBadVersion(5)
print(op)

輸入

5
4

輸出

4

更新日期: 2020 年 4 月 28 日

860 次觀看

開啟您的 職業生涯

完成課程以獲得認證

開始
廣告
© . All rights reserved.