力扣35搜尋插入位置

2021-10-14 00:18:05 字數 921 閱讀 1632

第一次沒看答案手敲**成功,和答案相比差得遠

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

你可以假設陣列中無重複元素。

示例 1:

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

輸出: 2

示例 2:

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

輸出: 1

示例 3:

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

輸出: 4

示例 4:

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

輸出: 0

答案:

class

solution

else

if(nums[mid]

< target)

else

}return left;}}

二者差別:

我寫的分情況討論了能找到和不能找到

實際上在不能找到的情況下,只需要輸出左指標就好了。

我寫的:

class

solution

int a =

binarysearch

(nums,target,l,r);if

(a!=-1

)else}}

return a;

}public

intbinarysearch

(int

nums,

int target,

int l,

int r)

if(nums[d]

>target)

else

a =binarysearch

(nums,target,l,r);}

return a;

}}

力扣35 搜尋插入位置

給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。請必須使用時間複雜度為 o log n 的演算法。二分練習,感覺自己對二分的邊界處理不太行,純靠感覺 思路就特判首尾,然後二分找到可以放下數字的位置或者找到數字。一開始l mid ...

力扣訓練35 搜尋插入位置

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

35 搜尋插入位置

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