给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。
你可以假设在数组中无重复元素。
样例
[1,3,5,6],5 → 2
[1,3,5,6],2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6],0 → 0
/**
* @param A: an integer sorted array
* @param target: an integer to be inserted
* @return: An integer
*/
const searchInsert = function (A, target) {
if(A.length===0) return 0;
var start=0,end=A.length-1;
while(start+1<end){
var mid=start+parseInt((end-start)/2);
if (A[mid]==target) {
return mid;
} else if(A[mid]<target){
start=mid;
}else{
end=mid;
}
}
if(A[start]>=target){
return start;
}else if(A[end]>=target){
return end;
}else{
return end+1;
}
}