当前位置: 首页 > article >正文

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

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

题解思路

  • 很明显是二分查找,而查找不到的时候,返回的left和right是相等的。如果找到到nums[left], 一般来说nums[left]<=nums[mid] 也就是target,所以要插入的位置就是left+1.

代码

class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {
        int left = 0,right = nums.size()-1;
        while(left<right)
        {
            int mid = left + (right-left)/2;
            if(nums[mid]==target)
            {
                return mid;
            }
            else if(nums[mid]<target)
            {
                left = mid+1;
            }
            else
            {
                right = mid-1;
            }
        }
		if(nums[left]<target)
		{
			return left+1;
		}
        return left;
    }
};

http://www.kler.cn/a/4018.html

相关文章:

  • docker 基础语法学习,K8s基础语法学习,零基础学习
  • 如何在linux系统上完成定时开机和更新github端口的任务
  • vue项目配置多语言
  • MATLAB基础应用精讲-【优化算法】阿基米德优化算法(附MATLAB代码实现)
  • LabVIEW时域近场天线测试
  • 重学SpringBoot3-Spring Retry实践
  • GPS时间序列分析---剔除跳跃点,拟合时间序列
  • 基于springboot心理健康管理系统(程序+数据库+文档)014
  • 位置编码Positional Encoding
  • 3D Slicer学习记录(6)-使用PLUSapp连接WebCam并实现marker跟踪
  • Json基本语法
  • 编程题 进制转换(Java实现)
  • Mybatis配置之别名(typeAliases)优化、设置(settings)优化、映射器(mappers)优化以及生命周期和作用域的学习和理解
  • C#,码海拾贝(02)——复数Complex计算类,《C#数值计算算法编程》源代码升级改进版
  • 初识冯诺依曼体系结构
  • #详细介绍!!! 线程池的拒绝策略(经典面试题)
  • 【精彩点评】比特币如何颠覆和改善全球供应链体系并彻底改变行业现状
  • 【SpringBoot】| 邮箱发送验证码,你会了吗?
  • ChatGPT相关核心算法
  • AutoSAR COMM-通信管理器通信通道ID【ComMChannelId】的定义
  • 【lwIP(第四章)】网络接口
  • MYSQL——美团面试题
  • 2023选择网络安全,抓住时代机遇!
  • I.MX6ULL_Linux_驱动篇(32) 设备树GPIO驱动
  • Winform/Csharp中使用Linq的Where条件筛选、Select字段映射(左外连接并设置无匹配时默认值)、OrderBy(排序并自定义排序规则)
  • Excel2010(详细解析)