力扣10-搜索插入位置

一.题目

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

请必须使用时间复杂度为 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

二.代码

cs 复制代码
int searchInsert(int* nums, int numsSize, int target) 
{
    int i=0;
    if(nums[numsSize-1]<target)
    {
        return numsSize;
    }
    for(i=0;i<numsSize;i++)
    {
        if(nums[i]>=target)
        {
            return i;
        }
    }
    return 0;
}

三.代码解释

首先检查目标值是否大于数组的最后一个元素,如果是,则返回数组的长度,因为此时目标值应该插入到数组的末尾。然后,通过遍历数组,一旦找到大于或等于目标值的元素,返回该元素的索引。如果遍历完数组都不满足条件,说明目标值小于数组的所有元素,将其插入到数组的起始位置,此时返回 0。

相关推荐
树在风中摇曳8 小时前
链表五大经典面试题详解:双指针与基础操作实战
数据结构·链表
Sɪʟᴇɴᴛ໊ོ2358 小时前
Anyview数据结构第一章(按需自取)
c语言·开发语言·数据结构·算法
松岛雾奈.2308 小时前
机器学习--数据集的标准化和归一化算法;随机森林
人工智能·算法·机器学习
橘颂TA8 小时前
【剑斩OFFER】算法的暴力美学——丢失的数字
数据结构·算法·leetcode·结构与算法
努力的白熊嗨8 小时前
大文件 Hash 计算:Web Worker 并行优化的原理与局限性
javascript·算法
CoovallyAIHub9 小时前
存储风暴下的边缘智能韧性:瑞芯微RK3588如何将供应链挑战转化为市场机遇
深度学习·算法·计算机视觉
杜子不疼.9 小时前
【C++】解决哈希冲突的核心方法:开放定址法 & 链地址法
c++·算法·哈希算法
落羽的落羽9 小时前
【Linux系统】解明进程优先级与切换调度O(1)算法
linux·服务器·c++·人工智能·学习·算法·机器学习
Ka1Yan9 小时前
[数组] - LeetCode 704. 二分查找
java·开发语言·算法·leetcode·职场和发展
xiaoye-duck9 小时前
归并排序:递归与非递归全解析
数据结构·排序算法