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 meansleftandrightpointers both point to the same element, we can just returnleftas the result index that thetargetshould be added to.
Solution
1 | |