美文网首页
[leetcode] 117. Search Insert Po

[leetcode] 117. Search Insert Po

作者: 时光杂货店 | 来源:发表于2017-03-31 15:46 被阅读15次

题目

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

解题之法

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

分析

二分搜索搞定。

相关文章

网友评论

      本文标题:[leetcode] 117. Search Insert Po

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