题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
解题思路:用二分法。
代码:
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
if(nums.empty())
return 0;
int n=nums.size();
int left=0,right=n-1;
if(nums[left]>=target)
return left;
if(nums[right]<target)
return right+1;
while(left<=right){
int mid=(left+right)/2;
if(nums[mid]==target)
return mid;
else if(nums[mid]<target)
left=mid+1;
else
right=mid-1;
}
return left;
}
};