给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log2 n) 的算法。
二分查找
class Solution {
public int searchInsert(int[] nums, int target) {
if(target<nums[0])return 0;
int len=nums.length;
if(target>nums[len-1])return len;
int left=0,right=len-1;
int middle=(left+right)/2;
while(left<=right){
middle=(left+right)/2;
if(target==nums[middle])return middle;
else if(target<nums[middle])right=middle-1;
else left=middle+1;
}
return left;
}
}