35. 搜索插入位置

Posted 2016bits

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了35. 搜索插入位置相关的知识,希望对你有一定的参考价值。

一、题目描述

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

你可以假设数组中无重复元素。

二、示例

示例 1:

输入: [1,3,5,6], 5
输出: 2

示例 2:

输入: [1,3,5,6], 2
输出: 1

示例 3:

输入: [1,3,5,6], 7
输出: 4

示例 4:

输入: [1,3,5,6], 0
输出: 0

三、基本思路

使用二分法,注意考虑特殊情况(示例3、4)所对应的索引情况

四、代码

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

 

以上是关于35. 搜索插入位置的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode第3天 - 704. 二分查找 | 35. 搜索插入位置

Leetcode -- 搜索插入位置(35)(二分查找)

#leetcode刷题之路35-搜索插入位置

leetcode题解之35. 搜索插入位置

LeetCode刷题--35. 搜索插入位置(简单)

Leetcode 35.搜索插入位置 By Python