LeetCode(35)-Search Insert Position

来源:互联网 发布:vm虚拟机ubuntu性能 编辑:程序博客网 时间:2024/06/09 14:37

问题描述:

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


问题分析:

二分查找的变形,关键是返回的结果,如果nums[l]<target ? l+1:l

问题解法:

class Solution {public:    int searchInsert(vector<int>& nums, int target) {        // if use lower_bound        // return lower_bound(A, A+n, target) - A;                int len = nums.size() - 1;        int l = 0, mid = 0;        while(l < len){            mid = l + ((len-l) >> 1);            if(nums[mid] < target){                l = mid + 1;            }            else                len = mid;        }        return nums[l] < target ? l+1 : l;    }};



0 0
原创粉丝点击