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