LeetCode 35. 搜索插入位置 (C++实现)

ops/2024/12/21 6:16:37/

1. 题目描述

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

请必须使用时间复杂度为 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

2. 解题思路

首先定义左指针left和右指针right,然后取数组中间元素的值和target比较,如果中间元素的值大于target,则右指针指向中间元素,如果中间元素的值小于target,则左指针指向中间元素,直到中间元素等于target。最后,如果没有找到,则右指针的下一位就是插入的位置。

3. 代码实现

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

http://www.ppmy.cn/ops/143685.html

相关文章

Linux Swap: 深入解析 mkswap, mkfs.swap, 和 swapon

文章目录 Linux Swap: 深入解析 mkswap, mkfs.swap, 和 swapon什么是 Swap&#xff1f;主要命令介绍1. mkswap2. mkfs.swap3. swapon 创建和管理 Swap 的步骤1. 创建 Swap 分区2. 初始化 Swap3. 激活 Swap4. 持久化配置5. 查看 Swap 状态 删除 Swap 分区或文件1. 停用 Swap2. 删…

Python利用chromedriver爬取商品主图数据

1.需要安装chromedriver Chrome下载地址 ChromeDriver官网下载地址&#xff1a;https://sites.google.com/chromium.org/driver/downloads ChromeDriver官网最新版下载地址&#xff1a;https://googlechromelabs.github.io/chrome-for-testing/ ChromeDriver国内镜像下载地址…

社区团购管理系统(源码+数据库)

355.基于SpringBoot的社区团购管理系统&#xff0c;系统包含两种角色&#xff1a;管理员、用户,系统分为前台和后台两大模块&#xff0c;主要功能如下 二、项目技术 编程语言&#xff1a;Java 数据库&#xff1a;MySQL 项目管理工具&#xff1a;Maven 前端技术&#xff1a;Vue …

基于Python的订单数据分析与可视化

概述 本文档详细介绍了使用Python进行订单数据分析和可视化的过程。我们的目标是从存储在文本文件中的JSON数据中提取信息&#xff0c;对这些数据进行处理和聚合&#xff0c;最后以图表的形式展示分析结果。本文档将详细介绍所使用的技术、编程核心思想、实现过程中遇到的问题…

el-table中合并垂直方向的单元格

el-table中合并垂直方向的单元格 一、合并垂直方向单元格&#xff0c;有相同字段的合并一起 一、合并垂直方向单元格&#xff0c;有相同字段的合并一起 合并一起的都有相同的字段mergeType <el-tableclass"merge-table":data"tableData"v-loading"…

旅游系统旅游小程序PHP+Uniapp

旅游门票预订系统&#xff0c;支持景点门票、导游产品便捷预订、美食打卡、景点分享、旅游笔记分享等综合系统 更新日志 V1.3.0 1、修复富文本标签 2、新增景点入驻【高级版本】3、新增门票核销【高级版】4、新增门票端口【高级版】

分布式链路追踪-03-Jaeger、Zipkin、skywalking 中的 span 是如何设计的?

开源项目 auto-log 自动日志输出 Jaeger、Zipkin 中的 spanId 是如何生成的&#xff1f; 在 Jaeger 和 Zipkin 这两个分布式跟踪系统中&#xff0c;Span ID 是通过不同的方法生成的。 下面分别介绍它们的生成方式&#xff1a; Jaeger 中的 Span ID 生成&#xff1a; 在 Ja…

基于Embedding模型的向量数据库与信息检索技术

前言 在信息爆炸的时代&#xff0c;如何从海量数据中高效检索出有价值的信息成为了一个重要的挑战。传统的基于关键词的检索方法已经难以满足日益增长的数据量和复杂的信息需求。近年来&#xff0c;随着深度学习技术的发展&#xff0c;Embedding模型和向量数据库逐渐成为了信息…