题目:
Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.
You may assume no duplicates in the array.
Here are few examples.
[1,3,5,6]
, 5 → 2
[1,3,5,6]
, 2 → 1
[1,3,5,6]
, 7 → 4
[1,3,5,6]
, 0 → 0
2.如果解释的话,当low=high=mid时,若nums[mid]>target,则要插入的位置是mid,返回low,ok.若nums[mid]<target,则插入的位置是mid+1;则low=mid+1,返回low,ok.
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int n=nums.size();
int min=0;
int max=n-1;
while(min<=max)
{
int mid=min+(max-min)/2;
if(target<=nums[mid])
max=mid-1;
else
min=mid+1;
}
return min;
}
};