所有題目源**:git位址
題目
你是產品經理,目前正在帶領乙個團隊開發新的產品。不幸的是,你的產品的最新版本沒有通過質量檢測。由於每個版本都是基於之前的版本開發的,所以錯誤的版本之後的所有版本都是錯的。
假設你有 n 個版本 [1,
2,..
., n],你想找出導致之後所有版本出錯的第乙個錯誤的版本。
你可以通過呼叫 bool isbadversion
(version) 介面來判斷版本號 version 是否在單元測試**錯。實現乙個函式來查詢第乙個錯誤的版本。你應該儘量減少對呼叫 api 的次數。
示例:給定 n =
5,並且 version =
4 是第乙個錯誤的版本。
呼叫 isbadversion(3
)->
false
呼叫 isbadversion(5
)->
true
呼叫 isbadversion(4
)->
true
所以,4 是第乙個錯誤的版本。
方案:二分查詢public
class
solution
extends
versioncontrol
public
intfind
(int first,
int last)
//int mid = (first+last)/2;會報超時
int mid = first+
(last-first)/2
;if(isbadversion
(mid)
)return
find
(first,mid)
;elseif(
!isbadversion
(mid)
)return
find
(mid,last)
;return-1
;}}
複雜度計算 leetcode演算法練習
1014.最佳觀光組合 給定正整數陣列 a,a i 表示第 i 個觀光景點的評分,並且兩個景點 i 和 j 之間的距離為 j i。一對景點 i j 組成的觀光組合的得分為 a i a j i j 景點的評分之和減去它們兩者之間的距離。返回一對觀光景點能取得的最高分。示例 輸入 8,1,5,2,6 輸...
leetcode演算法練習
1111.有效括號的巢狀深度 有效括號字串 定義 對於每個左括號,都能找到與之對應的右括號,反之亦然。詳情參見題末 有效括號字串 部分。巢狀深度 depth 定義 即有效括號字串巢狀的層數,depth a 表示有效括號字串 a 的巢狀深度。詳情參見題末 巢狀深度 部分。給你乙個 有效括號字串 seq...
leetcode演算法練習 打家劫舍
題目 打家劫舍 你是乙個專業的小偷,計畫偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝置的情況下,能夠偷竊到的最高金額。示...