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
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP