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

题意

找插入位置

题解

 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 };
View Code

加上第一行的特判比单纯二分要快一倍,很奇妙

posted @ 2019-02-03 11:47  TobicYAL  阅读(126)  评论(0编辑  收藏  举报