第一次沒看答案手敲**成功,和答案相比差得遠
給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。
你可以假設陣列中無重複元素。
示例 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 輸入...