【力扣】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 <= nums.length <= 104
  • -104 <= nums[i] <= 104
  • nums 为 无重复元素 的 升序 排列数组
  • -104 <= target <= 104


解题方案

  • C

常规遍历,不满足时间复杂度

int searchInsert(int* nums, int numsSize, int target) {
    for(int i = 0; i < numsSize; i++)
    {
        if(nums[i] >= target)
        {
            return i;
        }
    }
    return numsSize;
}


二分法

int searchInsert(int* nums, int numsSize, int target) {
    int left = 0, rignt = numsSize - 1, mid = 0;
    while(left <= rignt)
    {
        mid = (rignt - left) / 2 + left;
        if(nums[mid] < target)
        {
            left = mid + 1;
        }
        else
        {
            rignt = mid - 1;
        }
    }
    return left;
}


相关文章
|
22天前
|
C++ 索引 Python
leetcode-35:搜索插入位置
leetcode-35:搜索插入位置
24 0
|
12月前
|
算法 安全 Swift
LeetCode - #35 搜索插入位置
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
|
12月前
|
算法
每日一题——搜索插入位置(二分查找)
每日一题——搜索插入位置(二分查找)
|
12月前
|
索引
leetcode:35.搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
32 0
搜索插入位置力扣35
搜索插入位置力扣35
46 0
|
算法 索引
LeetCode:35. 搜索插入位置
题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。
|
Java C++ 索引
leetcode 35 搜索插入位置
leetcode 35 搜索插入位置
69 0
LeetCode 35. 搜索插入位置
LeetCode 35. 搜索插入位置
72 0