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

2021-10-04 21:24:03 字數 1186 閱讀 2057

題目:

你是產品經理,目前正在帶領乙個團隊開發新的產品。

不幸的是,你的產品的最新版本沒有通過質量檢測。

由於每個版本都是基於之前的版本開發的,所以錯誤的版本之後的所有版本都是錯的。

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

你可以通過呼叫 bool isbadversion(version) 介面來判斷版本號 version 是否在單元測試**錯。

實現乙個函式來查詢第乙個錯誤的版本。你應該儘量減少對呼叫 api 的次數。

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

呼叫 isbadversion(3) -> false

呼叫 isbadversion(5) -> true

呼叫 isbadversion(4) -> true

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

我的思路:

利用二分法尋找乙個當前值為一且,前面乙個值為零的數

// the api isbadversion is defined for you.

// bool isbadversion(int version);

intfirstbadversion

(int n)

while(1

)if(isbadversion

(w-1)==

0)w=c+

(w-c)/2

;}return w;

}

演算法雖然實現但是效果一般

leetcode標準答案:

// the api isbadversion is defined for you.

// bool isbadversion(int version);

intfirstbadversion

(int n)

int start =0;

int end = n;

int mid ;

int flag =0;

while

(startelse

}return start;

}

答案解析:

設定兩個指標乙個指向頭乙個指向尾,利用二分法將不斷縮減兩個指標間的距離當兩個指標接觸時程式結束

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

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

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

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

kmeans 第乙個matlab演算法

k均值演算法 km 32 最終聚類的大小 影象的大小 rgbsize size immatrix 陣列下標從1開始 imshow immatrix 顯示 immatrix 1,1,1 end for i 1 1 rgbsize 1 for j 1 1 rgbsize 2 immatrix i,j,1...