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...