Problem
Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.
You may assume no duplicates in the array.
Example 1:
1 |
|
Example 2:
1 |
|
Example 3:
1 |
|
Example 4:
1 |
|
Explanation
-
First, we check if the target is greater than the last element of the array. If it is, then we just return the last index of the array plus one.
-
Next, we can use binary search to find the left most position of the target, but if we find some number equals to target, in other words,
nums[mid] == target
, we can just returnmid
. Outside the loop ofleft < right
, that meansleft
andright
pointers both point to the same element, we can just returnleft
as the result index that thetarget
should be added to.
Solution
1 |
|