- 题目描述:给定排序数组和目标值,如果找到目标,则返回索引。如果没有,请返回索引按顺序插入的索引。您可以假设数组中没有重复项。
- 思路:二分查找
class Solution {
public int searchInsert(int[] nums, int target) {
int n=nums.length;
int right=n;
int left=0;
if(target>=nums[n-1]){
return target==nums[n-1] ? n-1 : n;
}
if(target<=nums[0]){
return 0;
}
while(left<=right){
int mid=(left+right)/2;
if(nums[mid]>target){
right=mid-1;
}else if(nums[mid]==target){
return mid;
}else{
left=mid+1;
}
}
return left;
}
}