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
Subscribeto see which companies asked this question
Hide Tags ArrayBinary Search Hide Similar Problems (E) First Bad Version分析:
二分查找要插入的位置
class Solution { public: int searchInsert(vector& nums, int target) { int low=0,high=nums.size()-1; while(low<=high) { int mid=(low+high)/2; if(nums[mid] target) high=mid-1;//要插入的位置一定在mid的左邊 if(nums[mid]==target) return mid;//找到了 } return low; } };