https://leetcode-cn.com/problems/search-insert-position/
[cost]
35min
[brainstorm]
1 by case
in between
left to index-0
right to index-n-1
2 in between
as sorted, use binary search.
binary search is essentially condense interval.
however, does target must in this interval, when is NOT?
3 while len>2, interval must shrink. so which one?
r = m
r = m-1
case: 3 5 7 9 10, target=8
4 flow exit while loop, what does that mean? how many cases there?
case: 1,3 target=3
[code]
class Solution {
public int searchInsert(int[] nums, int target) {
int n = nums.length;
if(nums[0]>target){
return 0;
}
if(nums[n-1]<target){
return n;
}
int l=0;
int r=n-1;
while(l<r){
int m = l +(r-l)/2;
if(nums[m]==target){
return m;
}
else if(nums[m]<target){
l = m+1;
}
else if(nums[m]>target){
r = m;
}
}
if(l==r){
return nums[l]>=target?l:l+1;
}
return -1;
}
}