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 <= nums[i] <= 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
相关推荐
WindSearcher12 分钟前
大模型微调相关知识
后端·算法
Humbunklung16 分钟前
PySide6 GUI 学习笔记——常用类及控件使用方法(多行文本控件QTextEdit)
笔记·python·学习·pyqt
取酒鱼食--【余九】23 分钟前
rl_sar实现sim2real的整体思路
人工智能·笔记·算法·rl_sar
火车叼位1 小时前
使用 uv 工具在 Windows 系统快速下载安装与切换 Python
python
心扬1 小时前
python网络编程
开发语言·网络·python·tcp/ip
忧陌6061 小时前
DAY 44 预训练模型
python
点云SLAM1 小时前
PyTorch 中contiguous函数使用详解和代码演示
人工智能·pytorch·python·3d深度学习·contiguous函数·张量内存布局优化·张量操作
尘浮7282 小时前
60天python训练计划----day45
开发语言·python
Magnum Lehar2 小时前
vulkan游戏引擎test_manager实现
java·算法·游戏引擎
哆啦A梦的口袋呀2 小时前
基于Python学习《Head First设计模式》第六章 命令模式
python·学习·设计模式