美文网首页
Search Insert Position

Search Insert Position

作者: 默写年华Antifragile | 来源:发表于2020-03-19 13:50 被阅读0次

https://leetcode.com/problems/search-insert-position

给定一个有序数组nums, 和一个target,问将这个target插入nums的位置;这里假设数组中没有重复值。

二分查找

class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {
        int lo = 0, hi = nums.size()-1;
        while(lo < hi)
        {
            int mi = (lo+hi)>>1;
            (nums[mi] < target ? lo = mi + 1 : hi = mi);
        }
        return (nums[lo] < target) ? lo +1 : lo;
    }
};

退出while循环时,lo和hi相等,此时如果 target== nums[lo],则返回lo,如果target > nums[lo],则应该在 lo + 1 位置插入;如果 target < nums[lo],则在lo位置插入;

相关文章

网友评论

      本文标题:Search Insert Position

      本文链接:https://www.haomeiwen.com/subject/juzkyhtx.html