初級演算法之排序和搜尋 第乙個錯誤的版本

2021-09-10 01:30:26 字數 811 閱讀 8931

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

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

你可以通過呼叫 bool isbadversion(version) 介面來判斷版本號 version

是否在單元測試**錯。實現乙個函式來查詢第乙個錯誤的版本。你應該儘量減少對呼叫 api 的次數。

> 示例:

>

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

>

> 呼叫 isbadversion(3) -> false 呼叫 isbadversion(5) -> true 呼叫

> isbadversion(4) -> true

>

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

主要思想:採用二分查詢的思想,結束後的begin指向便是第乙個錯誤版本

public int firstbadversion(int n) 

else

}return begin;

}

踩的坑:

(1)middle=(begin+rail)/2 最後提交超時,因為begin+rail可能會過大而溢位,導致亂七八糟的迴圈。

(2)middle=begin/2 + rail/2 當輸入1 1 時,會出現isbadversion(0),超時錯誤。

leetcode演算法練習 278 第乙個錯誤的版本

所有題目源 git位址 題目你是產品經理,目前正在帶領乙個團隊開發新的產品。不幸的是,你的產品的最新版本沒有通過質量檢測。由於每個版本都是基於之前的版本開發的,所以錯誤的版本之後的所有版本都是錯的。假設你有 n 個版本 1,2,n 你想找出導致之後所有版本出錯的第乙個錯誤的版本。你可以通過呼叫 bo...

第乙個錯誤的版本

leetcode鏈結 你是產品經理,目前正在帶領乙個團隊開發新的產品。不幸的是,你的產品的最新版本沒有通過質量檢測。由於每個版本都是基於之前的版本開發的,所以錯誤的版本之後的所有版本都是錯的。假設你有n個版本 1,2,n 你想找出導致之後所有版本出錯的第乙個錯誤的版本。你可以通過呼叫bool isb...

第乙個錯誤的版本

你是產品經理,目前正在帶領乙個團隊開發新的產品。不幸的是,你的產品的最新版本沒有通過質量檢測。由於每個版本都是基於之前的版本開發的,所以錯誤的版本之後的所有版本都是錯的。假設你有 n 個版本 1,2,n 你想找出導致之後所有版本出錯的第乙個錯誤的版本。你可以通過呼叫 bool isbadversio...