给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
class Solution {
public int searchInsert(int[] nums, int target) {
int left=0;
int right=nums.length;
int mid=left+(right-left)/2;
int number=0;
while(right-left>1){
if(target<nums[mid]){
right=mid;
}
else if(target>nums[mid]){
left=mid;
}
else{
number=mid;
break;
}
mid=left+(right-left)/2;
}
if(right-left==1){
if(target>nums[left]){
number=right;
}
else{
number=left;
}
}
return number;
}
}
示例代码:
class Solution {
public int searchInsert(int[] nums, int target) {
int left = 0;
int right = nums.length-1;
while(left <= right){
int mid = left+ (right-left )/2;
if(nums[mid]< target){
left = mid+1;
}else if(nums[mid]> target){
right = mid-1;
}else {
return mid;
}
}
return left;
}
}