leetcode解題之第乙個錯誤的版本

2021-10-03 07:04:31 字數 1586 閱讀 3919

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

假設你有 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 defined in the parent class versioncontrol.

boolean isbadversion(int version); */

public

class

solution

extends

versioncontrol

elseif(

isbadversion

(mid)

&&isbadversion

(mid-1)

)else

}return0;

}}

可悲的是超時了,怎麼也想不到是取中位數的時候有問題了,更改後的**:

/* the isbadversion api is defined in the parent class versioncontrol.

boolean isbadversion(int version); */

public

class

solution

extends

versioncontrol

elseif(

isbadversion

(mid)

&&isbadversion

(mid-1)

)else

}return0;

}}

然後再次精簡

/* the isbadversion api is defined in the parent class versioncontrol.

boolean isbadversion(int version); */

public

class

solution

extends

versioncontrol

else

}return end;

}}

leetcode之278第乙個錯誤的版本

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

python第乙個程式設計 第乙個 Python 程式

簡述 安裝完 python 後,windows 中 開始選單或安裝目錄下就會有 idle 開發 python 程式的基本 ide 整合開發環境 幫助手冊 模組文件等。linux 中 只需要在命令列中輸入 python 命令即可啟動互動式程式設計。互動式程式設計 互動式程式設計不需要建立指令碼檔案,是...

LeetCode 第乙個錯誤的版本

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