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