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

题意:找到合适的位置插入target。

解法: 二分,然后找到了就直接返回,没找到就是最后的l。

代码:

class Solution 
{
    public:
        int searchInsert(vector<int>& nums, int target) 
        {
            int ans = -1;
            int l = 0;
            int r = nums.size()-1;
            while(l<=r)
            {
                int mid = (l+r)>>1;
                if(nums[mid]==target)   return mid;
                else if(nums[mid]1;
                else r = mid-1;
            }
            return l;
        }
};

你可能感兴趣的:(二分与三分)