35. 搜索插入位置

35. 搜索插入位置

  • 题目-简单难度
  • [1. 直接while-loop遍历](#1. 直接while-loop遍历)
  • [2. 二分法](#2. 二分法)

题目-简单难度

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

请必须使用时间复杂度为 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 <= numsi <= 104
  • nums 为 无重复元素 的 升序 排列数组
  • -104 <= target <= 104

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/summary-ranges
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

1. 直接while-loop遍历

python 复制代码
class Solution(object):
    def searchInsert(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: int
        """
        # 设置索引
        i = 0
        # 遍历列表
        while i < len(nums):
            # 如果发现
            if nums[i] >= target:
                return i
            i+=1
        return len(nums)

2. 二分法

python 复制代码
class Solution(object):
    def searchInsert(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: int
        """
        # 设置左右指针
        l,r = 0, len(nums)-1
        # 当左右指针间仍然有元素未遍历
        while l <= r:
            # 设置中间元素位置
            m = l + (r-l)//2
            # 判断中间元素是否比要找到元素大
            # 大或者相等的情况 设置右侧边界为m-1
            if nums[m] >= target:
                r = m - 1
            # 小于的情况 设置左侧边界为m+1
            else:
                l = m + 1
        # 返回左指针元素
        return l
相关推荐
小O的算法实验室12 小时前
IEEE TASE,基于MPC的多无人机协同搜索竞争群体优化方法
算法
Tbisnic13 小时前
BGE-M3 算法详解:从模型架构到三种检索方式的数学原理
算法·自然语言处理·大模型·bert·transformer·注意力机制
聪明蛋子哟13 小时前
Stagehand v3多语言SDK:Python/Go/Rust/Java下的浏览器自动化统一方案
python·golang·rust
Brilliantwxx13 小时前
【算法从零到千】【55-58】哈希位图+常见数学运算 接口
算法
今天AI了吗14 小时前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·数据库·人工智能·python·sql·深度学习·机器学习
卷无止境14 小时前
Windows 上丝滑开发 Python,并稳定构建 Docker 镜像
后端·python·docker
空堂与归14 小时前
用户分群找不到规律?用K-Means聚类算法自动发现数据模式
算法·机器学习·kmeans·聚类
TELL52114 小时前
selenium webdriver 第二次初始化的异常
开发语言·python
Csvn15 小时前
🐍 Day 4: Python 控制流 — 条件、循环与推导式的艺术
后端·python
动词ing15 小时前
【C语言】自定义函数+指针入门
c语言·开发语言·算法