数组插入数的下标位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

你可以假设数组中无重复元素。

思路:二分,注意一下最后循环结束时,游标r的位置,不清楚可以加一个判断语句,如果num是【r】大于等于target那么是r,否则就是r+1的位置

 

class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
if(nums.empty()) return 0;
int l=0,r=nums.size()-1;
while(l<r){
int mid=(l+r)/2;
if(nums[mid]==target) return mid;
if(nums[mid]<target) l=mid+1;
else r=mid;
}
return nums[r]>=target?r:r+1;


}
};

posted @ 2019-03-18 15:48  zzas12345  阅读(605)  评论(0编辑  收藏  举报