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.
Example 1:
Input: [1,3,5,6], 5
Output: 2
Example 2:
Input: [1,3,5,6], 2
Output: 1
Example 3:
Input: [1,3,5,6], 7
Output: 4
Example 4:
Input: [1,3,5,6], 0
Output: 0
题意
找插入位置
题解
1 class Solution { 2 public: 3 int searchInsert(vector<int>& nums, int target) { 4 if (nums.back() < target)return nums.size(); 5 int size = nums.size(), s = 0, e = size - 1; 6 while (s <= e) { 7 int mid = (s + e) / 2; 8 if (nums[mid] < target) 9 s = mid + 1; 10 else 11 e = mid - 1; 12 } 13 return s; 14 } 15 };
加上第一行的特判比单纯二分要快一倍,很奇妙