首页 > 其他分享 >搜索插入位置(二分查找)

搜索插入位置(二分查找)

时间:2025-01-01 14:44:13浏览次数:1  
标签:二分 target nums int 示例 插入 查找 left

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

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

 

class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {
        int left = 0;
        int right = nums.size()-1;
        while(left<=right){
            int mid = left + (right-left)/2;
            if(nums[mid]==target){//找到就插入到mid所在位置
                return mid;
            }else if(nums[mid]>target){
                right=mid-1;
            }else{
                left=mid+1;
            }
        }
        return left;//没找到就插入到left所在位置
    }
};

 

标签:二分,target,nums,int,示例,插入,查找,left
From: https://www.cnblogs.com/yueshengd/p/18645910

相关文章

  • Leetcode刷题第二天-二分查找
    33.搜索旋转排序数组-力扣(LeetCode)二分查找的前提条件“数组有序”middle将数组分成左区间[left,middle)和右区间[middle,rigjht)两部分,左区间和右区间必有一个区间为有序区间左区间为有序数组如果middle数据大于target ——> 目标数据在左区间且左区间升序——>正......
  • C语言插入排序及其优化
    插入排序算法详解插入排序是一种简单直观的排序算法。它通过构建有序序列,将未排序部分的元素插入到已排序部分的正确位置,直到所有元素排序完成。下面是插入排序的关键点及其实现细节。算法思想从第二个元素(下标为1)开始,假定左侧的子数组已排序。将当前元素与已排序部分逐一......
  • P1678 烦恼的高考志愿(二分lower_bound)
    题目链接:https://www.luogu.com.cn/problem/P1678题意:对每一个学生找一个和他成绩差值最小的学校,求差值之和思路:贪心+二分查找注意:当lower_bound在数组中找不到大于等于目标值时,会返回其尾迭代器/数组最后的一个元素下标+1因此要特判比较第一个大于等于目标值的元素,与其......
  • 如何查找数据库名、数据库用户名和密码?
    查找数据库名、数据库用户名和密码的方法因服务器环境而异。如果是使用虚拟主机,通常可以在业务管理-虚拟主机管理-管理-数据库中查看相关信息。对于云服务器,情况可能较为复杂。如果是通过建站助手等工具搭建的环境,可能需要参考相应工具的文档或知识库来查找数据库信息。例如......
  • Linux查找当前整个系统每个进程的线程数
    工作中经常遇到这样的问题:某台服务器的CPU使用率飙升,通过top命令查看是某个程序(Java)占用的CPU比较大,需要查询Java各个进程下的线程数数量。可以通过以下一组命令组合实现:forpidin$(ps-ef|grep“java”|grep-vgrep|awk'{print$2}');doecho${pid}>/tmp/a.txt;ca......
  • 【YashanDB知识库】如何使用jdbc向YashanDB批量插入gis数据
    本文内容来自YashanDB官网,原文内容请见https://www.yashandb.com/newsinfo/7817897.html?templateId=1718516以gis表为例:droptablegis;createtablegis(idnumbernotnull,posst_geometrynotnull);使用如下的java代码片断,可以向gis表中插入POINT类型的gis数据:conn.s......
  • 服务器如何查找并清理占用大量空间的文件?
    问题描述:用户在使用虚拟主机时发现磁盘空间已接近或超过限额,导致网站运行出现问题。通过FTP工具登录后,发现某些目录下的文件数量众多且占用大量存储空间。如何高效地定位这些大文件,并采取有效措施进行清理以恢复正常的网站运作?解决方案:当遇到虚拟主机磁盘空间不足的问题时,可以......
  • word中自带插入公式,实现换行和对齐
    word自带公式输入很是难用,尤其是不能在公式内回车换行。网上有方法说用(shift+回车)方法,亲测不可用。通过多方查找资料,终于找到如何实现word自带公式的换行和对齐的解决方法。先看看最终效果。首先,我们需要观测到word公式输入的模式,在插入公式操作中,公式工具左上角会显示如下图内......
  • 插入排序
    1if__name__=='__main__':2'''3插入排序41.从第一个元素开始,该元素可以认为已经被排序52.取出下一个元素,在已经排序的元素序列中从后向前扫描63.如果该元素(已排序)大于新元素,将该元素移到下一位置74.重复步骤3,直......
  • P2765 魔术球问题&&二分图
    题意here思路1根据此题输入m的范围,可以知道此题的答案上限约为5000考虑逆向二分求解(实际上可以直接枚举)2此题可以抽象成在图上求最少链的个数我们把所有数向比他大的、与他的和为平方数的数建边可以看出是二分图最大匹配问题结合图更清晰:此时图上最少链的个数为\(n\)......