35.搜索插入位置

35.搜索插入位置

题目描述
  给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。

示例 1:
输入: nums = [1,3,5,6], target = 5
输出: 2

示例 2:
输入: nums = [1,3,5,6], target = 2
输出: 1

示例 3:
输入: nums = [1,3,5,6], target = 7
输出: 4

解题心得:
 1.找到基本规律,返回索引
 2.找到边界和特殊值

C++代码演示

class Solution 
{
public:
    int searchInsert(vector<int>& nums, int target) 
    {
        int len = nums.size(); //获取长度
        if( nums[len -1] < target)  //特殊值
        {
            return len;
        }
        if(nums[len-1] == target) //特殊值
        {
            return len -1;
        }
        for(int i = 0 ; i < len ; i++)
        {
            if(nums[i] >= target)
            {
                return i;
            }
        }
        return 0;
    }
};
posted @ 2025-08-17 21:46  开心猪扒  阅读(3)  评论(0)    收藏  举报