19.2.3 [LeetCode 35] Search Insert Position
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
题意
找插入位置
题解
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 };
加上第一行的特判比单纯二分要快一倍,很奇妙
注定失败的战争,也要拼尽全力去打赢它;
就算输,也要输得足够漂亮。