第一個錯誤的版本

weixin_33850890發表於2018-04-25

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

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

你可以通過 bool isBadVersion(version) 的介面來判斷版本號 version 是否在單元測試中出錯。實現一個函式來查詢第一個錯誤的版本。您應該儘量減少對 API 的呼叫次數。
題目地址

def firstBadVersion(self, n):
        """
        :type n: int
        :rtype: int
        """
        if n <= 0:
            return n
        
        # 這是我犯的錯誤,還是按陣列從0-n-1
        # start = 0
        # end = n - 1
        
        start = 1
        end = n 
        while start + 1< end:
            mid = (start + end) / 2
            if isBadVersion(mid):
                end = mid
            else:
                start = mid
        if isBadVersion(start):
            return start
        if isBadVersion(end):
            return end
        return n

相關文章