题目:
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
解析:
我们可以采用循环的方式进行二分查找。
例如
代码:
class Solution {
public int searchInsert(int[] nums, int target) {
int index=-1;
int begin=0;
int end = nums.length-1;
while(index==-1){
int mid=(begin+end)/2;
if(target==nums[mid]){
index= mid;
}
else if(target<nums[mid]){
if(mid==0 || target>nums[mid-1]){
index= mid;
}
end=mid-1;
}
else if(target>nums[mid] ){
if(mid==end || target<nums[mid+1]){
index= mid+1;
}
begin=mid+1;
}
}
return index;
}
}
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/search-insert-position
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。