LeetCode 35. 搜索插入位置

LeetCode 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

二分查找

python 复制代码
class Solution:
    def searchInsert(self, nums: List[int], target: int) -> int:
        left, right = 0, len(nums) - 1
        while left <= right:
            mid = left + ((right - left) >> 1)
            if nums[mid] < target:
                left = mid + 1
            elif nums[mid] > target:
                right = mid - 1
            else:
                return mid
        return left
相关推荐
simple_ssn3 分钟前
【C语言刷力扣】2391.收集垃圾的最少总时间
c语言·算法·leetcode
莫叫石榴姐31 分钟前
趣味SQL | 从围棋收官到秦楚大战的数据库SQL实现(下)
大数据·数据库·人工智能·sql·算法
fcblow34 分钟前
求10 个整数中最大值
c语言·算法·排序算法
码农豆豆1 小时前
11.C++程序中的常用函数
开发语言·c++·算法
曳渔1 小时前
Java-数据结构-Map和Set-(二)-哈希表 |ू・ω・` )
java·开发语言·数据结构·算法·哈希算法·散列表
March€1 小时前
常见算法复习
java·算法·排序算法
冉佳驹1 小时前
数据结构 ——— 顺序表oj题:编写函数,合并两个有序数组
c语言·数据结构·算法
椰椰椰耶2 小时前
【JVM】垃圾释放方式:标记-清除、复制算法、标记-整理、分代回收
jvm·算法
CV-King3 小时前
opencv实战项目二十七:基于meanshif的视频脸部跟踪
图像处理·人工智能·opencv·算法·计算机视觉·音视频
大晴的上分之旅3 小时前
排序算法的分析和应用
算法·排序算法