public int searchInsert(int[] nums, int target) {
/*if (target <= nums[0]){
return 0;}
if (target > nums[nums.length - 1]){
return nums.length;
}
int i = search(0,nums.length - 1,nums,target);
if(i != -1){
return i;
}else {
int j = 0;
while (j < nums.length - 1) {
if (target > nums[j] && target <= nums[j+1]){
return j+1;
}
j++;
}
}
return -1;*/
return searchInsert(0,nums.length - 1,nums,target);
}
public int searchInsert(int left, int right,int[] nums,int target) {
/*
Binary search
*/
// 0 6
// arr[] = {1,2,3,4,6,7,8};target = 5;
while (left <= right) {
int pivot = (left + right) / 2;
if (nums[pivot] == target)
return pivot;
else {
if (target < nums[pivot])
right = pivot - 1;
else
left = pivot + 1;
}
}
return left;
}
注意: