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

解题思路:使用二分查找算法直接插入,代码极其简洁,展示如下。

Python3代码:

python 复制代码
class Solution:
    def searchInsert(self, nums: List[int], target: int) -> int:
        l,r = 0,len(nums)-1
        while l <= r:
            mid = l+(r-l)//2
            if nums[mid] < target:
                l = mid+1
            else:
                r = mid-1
        return l
相关推荐
放下华子我只抽RuiKe51 小时前
机器学习全景指南-探索篇——发现数据内在结构的聚类算法
人工智能·深度学习·算法·机器学习·语言模型·数据挖掘·聚类
Yupureki2 小时前
《C++实战项目-高并发内存池》3.ThreadCache构造
服务器·c语言·c++·算法·哈希算法
j_xxx404_2 小时前
C++算法:一维/二维前缀和算法模板题
开发语言·数据结构·c++·算法
x_xbx2 小时前
LeetCode:111. 二叉树的最小深度
算法·leetcode·职场和发展
入目星河滚烫2 小时前
网易互娱2020校招在线笔试—游戏研发第一批—游泳池-研发
算法·笔试·数据结构与算法
xier_ran2 小时前
【第一周】关键词解释:倒数排名融合(Reciprocal Rank Fusion, RRF)算法
开发语言·python·算法
spiritualfood2 小时前
蓝桥杯大学b组水质检测
c语言·c++·算法·青少年编程·职场和发展·蓝桥杯
进击的小头2 小时前
第6篇:贝尔曼最优化理论
python·算法·动态规划
EQUINOX12 小时前
bitset + meet in the middle,P3067 [USACO12OPEN] Balanced Cow Subsets G
算法