1、35. 搜尋插入位置
給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。
你可以假設陣列中無重複元素。
2、74. 搜尋二維矩陣
編寫乙個高效的演算法來判斷 m x n 矩陣中,是否存在乙個目標值。該矩陣具有如下特性:
每行中的整數從左到右按公升序排列。
每行的第乙個整數大於前一行的最後乙個整數。
解答:從後往前,搜到目標值所在的行
3、278. 第乙個錯誤的版本
你是產品經理,目前正在帶領乙個團隊開發新的產品。不幸的是,你的產品的最新版本沒有通過質量檢測。由於每個版本都是基於之前的版本開發的,所以錯誤的版本之後的所有版本都是錯的。
假設你有 n 個版本 [1, 2, ..., n],你想找出導致之後所有版本出錯的第乙個錯誤的版本。
你可以通過呼叫 bool isbadversion(version) 介面來判斷版本號 version 是否在單元測試**錯。實現乙個函式來查詢第乙個錯誤的版本。你應該儘量減少對呼叫 api 的次數。
4、153. 尋找旋轉排序陣列中的最小值
假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 [0,1,2,4,5,6,7] 可能變為 [4,5,6,7,0,1,2] 。
請找出其中最小的元素。
解答:如果陣列變化了,找到首元素被移動到**去了
5、154. 尋找旋轉排序陣列中的最小值 ii
假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。
( 例如,陣列 [0,1,2,4,5,6,7] 可能變為 [4,5,6,7,0,1,2] )。
請找出其中最小的元素。
注意陣列中可能存在重複的元素。
解答:當numbers[mid]==numbers[right] ,不斷搜小右邊界。
6、33. 搜尋旋轉排序陣列
解答:首先判斷左邊是不是順序增加的,再分情況判斷在左邊還是右邊
7、81. 搜尋旋轉排序陣列 ii
專題訓練之BFS DFS 二分
bsf是指寬度優先搜尋。從我的理解來說,就是從乙個節點出發,一步步地走從該節點出發,實現所有的可能性。在以前學資訊學競賽的時候,我們老師曾這麼這麼解釋 bfs就是從乙個點出發,一直走到底,豎著一列列搜尋 dfs就是從乙個點出發,走所有可能的地方,橫著一層層搜尋。搜尋完當前點,回溯的時候,要注意還原原...
二分專題題解
題目大意為給一條直線上的n個點,讓你隨意選取c個點,然後使得這c個點兩兩之間的最小距離最大,如何選取這c個點使這個最小距離最大,輸出最大的最小距離max。先把座標排序,之後界定二分的範圍,二分的縮小範圍的條件則為當兩點距離大於所輸入的點時,s 返回s。如若s大於所處的點,說明值太小,將左界變為mid...
整體二分專題
何謂整體二分?一般的二分只適用於單個詢問的,如果有很多個詢問,就變成了n 2n 2 n2或更高但整體二分則可以迅速處理多個詢問的問題 首先需要離線,讀入所有詢問 然後我們二分答案,這時候我們將詢問分成兩個部分,如果l r就直接更新答案,否則考慮分治,詢問的答案在左邊的丟到左邊,答案在右邊的則丟到右邊...