给定排序数组和目标值,如果找到目标,则返回索引。如果没有,则返回按顺序插入索引的位置。
您可以假定数组中没有重复项。
这里有几个例子。
[1,3,5,6], 5 → 2
[1,3,5,6], 2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6], 0 → 0
public class Solution {
public int searchInsert(int[] A, int target) {
int len = A.length;
int left = 0,right = len-1;
while(left<=right){
int mid = (left+right)/2;
if(target==A[mid]){
return mid;
}
if(target<A[mid]){
right = mid-1;
}
else if(target>A[mid]){
left = mid+1;
}
}
if(A[len-1]<target) return len;
for(int i=1;i<len;i++){
if(A[i]>target&&A[i-1]<target){
return i;
}
}
return 0;
}
}