35 搜尋插入位置 278 第乙個錯誤的版本

2021-09-06 06:38:52 字數 861 閱讀 8997

35. 搜尋插入位置

考察的就是二分查詢。

leetcode ac 99.78%:

class solution 

return low;}}

;

278. 第乙個錯誤的版本

分析:題目屬於"二分值越大越符合條件",即要求符合條件的最小值,那就是

while(r>l)

然後更新是不符合條件l=mid+1,否則是r=mid

反之,即 題目屬於"二分值越小越符合條件",即要求符合條件的最大值,那就是

while(r>l)

然後更新是符合條件l=mid,否則是r=mid-1。

如果涉及負數,最好用mid=l+(r-l)/2代替第1類,mid=l+(r-l+1)/2代替第2類。[1].

這裡有個常見的坑[2],不要圖快用加法,會溢位。今天就踩了,leetcode報超時。

median = ( low + high ) / 2 // overflow

這題還要注意邊界更新迴圈條件與上述寫法不同,是一種常見的寫法。[3]

leetcode ac 100%:

// forward declaration of isbadversion api.

bool isbadversion

(int version)

; class solution

return low;}}

;

[1]

[2]

[3]

278第乙個錯誤的版本

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

278 第乙個錯誤的版本

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

278 第乙個錯誤的版本

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