LeetCode二分法彙總 1

2021-10-23 10:27:12 字數 652 閱讀 8618

給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。你可以假設陣列中無重複元素。

輸入: [1,3,5,6], 5

輸出: 2

輸入: [1,3,5,6], 2

輸出: 1

輸入: [1,3,5,6], 7

輸出: 4

輸入: [1,3,5,6], 0

輸出: 0

方法

二分法適用於有序陣列中查詢整數值。定義low為陣列第乙個索引,high為最後乙個索引,mid為中間索引(取左)。target每次和nums[mid]比較,如果大於,則low變成mid+1;小於,high變成mid-1。

好處是時間複雜度可以抵禦o(n),還不占用額外的儲存空間。

時間複雜度 o(logn)

要找到target的位置,只要找到nums[pos-1]即不斷用二分法逼近查詢第乙個大於等於target的下標。

class

solution35

if(target > nums[mid]

)else

if(target < nums[mid])}

return left;

}}

二分法彙總

以記憶為目的,避免細節糾結。尋找左右邊界 幾乎一樣,只是最後返回值的不同,有時需要返回 1有時需要返回相關索引。經典題目 leetcode題目34第乙個和最後乙個位置 public static int searchrange int nums,int target public static in...

二分法題目彙總

題目知識點 我的題解 其他題解 69.x 的平方根 二分法找右邊界 力扣題解 官方題解 278.第乙個錯誤的版本 二分法找左邊界 力扣題解 官方題解 triple inversion 二分 排序 csdn題解 官方題解 minimum light radius 二分法找左右邊界 csdn題解 719...

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...