1. 程式人生 > >【leetcode 簡單】 第七十五題 第一個錯誤的版本

【leetcode 簡單】 第七十五題 第一個錯誤的版本

nbsp 團隊 logs span 通過 bad log 是否 判斷

你是產品經理,目前正在帶領一個團隊開發新的產品。不幸的是,你的產品的最新版本沒有通過質量檢測。由於每個版本都是基於之前的版本開發的,所以錯誤的版本之後的所有版本都是錯的。

假設你有 n 個版本 [1, 2, ..., n],你想找出導致之後所有版本出錯的第一個錯誤的版本。

你可以通過調用 bool isBadVersion(version) 接口來判斷版本號 version 是否在單元測試中出錯。實現一個函數來查找第一個錯誤的版本。你應該盡量減少對調用 API 的次數。

示例:

給定 n = 5,並且 version = 4 是第一個錯誤的版本。

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

所以,4 是第一個錯誤的版本。 



# The isBadVersion API is already defined for you.
# @param version, an integer
# @return a bool
# def isBadVersion(version):

class Solution:
    def firstBadVersion(self, n):
        """
        :type n: int
        :rtype: int
        """
        start = 0
        end = n
        mid = 0
        
while start <= end: mid = int(start +(end-start) /2) if isBadVersion(mid) == False: start = mid +1 else: end = mid -1 return start

參考:https://www.cnblogs.com/flashBoxer/p/9471527.html

【leetcode 簡單】 第七十五題 第一個錯誤的版本