首页 > 其他分享 >数字在排序数组中出现的次数--二分

数字在排序数组中出现的次数--二分

时间:2023-11-27 20:45:13浏览次数:35  
标签:二分 nums -- mid int 端点 排序

题目描述

image

  • 有序序列二分
    image
  • 先对左端点进行二分
  • 再对右端点二分
    最后得到两个端点,直接相减+1,得到区间个数
class Solution {
public:
    int getNumberOfK(vector<int>& nums , int k) {
        if(nums.empty()) return 0;
        int l=0,r=nums.size()-1;
        while(l<r){
            int mid=l+r>>1;
            if(nums[mid]<k) l=mid+1;
            else r=mid;
        }
        if(nums[l]!=k) return 0;
        int left = l;
        l=0,r=nums.size()-1;
        while(l<r){
            int mid = l+r+1>>1;
            if(nums[mid]<=k) l=mid;
            else r=mid-1;
        }
        return r-left+1;
    }
};

标签:二分,nums,--,mid,int,端点,排序
From: https://www.cnblogs.com/solutide/p/17860404.html

相关文章

  • Linux磁盘管理
    简介在Linux系统中,磁盘管理是指对磁盘的创建、格式化、挂载、卸载等操作。磁盘管理对于Linux系统的正常运行至关重要。磁盘分区在Linux系统中,磁盘可以分为多个分区。分区可以将磁盘划分为不同的区域,每个区域可以用于不同的目的。磁盘格式化磁盘格式化是指对磁盘进行初始化......
  • springboot实现验证码功能
    转载自:www.javaman.cn1、编写工具类生成4位随机数该工具类主要生成从0-9,a-z,A-Z范围内产生的4位随机数/***产生4位随机字符串*/publicstaticStringgetCheckCode(){Stringbase="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrs......
  • SQL FULL OUTER JOIN 关键字:左右表中所有记录的全连接解析
    SQLRIGHTJOIN关键字SQLRIGHTJOIN关键字返回右表(table2)中的所有记录以及左表(table1)中的匹配记录。如果没有匹配,则左侧的结果为0条记录。RIGHTJOIN语法SELECTcolumn_name(s)FROMtable1RIGHTJOINtable2ONtable1.column_name=table2.column_name;注意:在某些数据库......
  • Linux多用户开发权限管理
    简介Linux是一个多用户系统,每个用户都有自己的权限。在Linux系统上进行开发,需要合理地管理用户权限,以确保开发环境的安全和稳定。用户和组在Linux系统中,用户和组是权限管理的基础。用户是系统中的一个身份,组是一组用户的集合。每个用户都属于一个或多个组。用户权限用户......
  • linux_uboot(移植文件简述)
    配置文件/uboot/u-boot-fslc-2023.04-fslc/configs文件夹中是和芯片外设模块有关的配置项目mx6ull_14x14_evk_defconfig开发板对应的头文件配置在如下位置/uboot/u-boot-fslc-2023.04-fslc/include/configs本次使用的是:mx6ullevk.h主要功能就是配置或者裁剪ubootm......
  • Linux:进程管理和I/O重定向与管道
    1.进程管理一、进程管理1.进程简介首先我们要了解,什么是进程?进程是已启动的可执行程序的运行实例,进程有以下组成部分:•已分配内存的地址空间;•安全属性,包括所有权凭据和特权;•程序代码的一个或多个执行线程;•进程状态。程序:二进制文件,静态/usr/bin/passwd,/usr/sbin/us......
  • SpringBoot3基础知识梳理
    一、SpringBoot3介绍1.1SpringBoot3简介​ SpringBoot帮我们简单、快速地创建一个独立的、生产级别的Spring应用(说明:SpringBoot底层是Spring),大多数SpringBoot应用只需要编写少量配置即可快速整合Spring平台以及第三方技术。SpringBoot的主要目标是:为所有Spring开发......
  • 再探欧式筛——一种泛用性更强的欧拉筛法/线性筛法实现
    一、引言欧式筛/欧拉筛法/线性筛法(EulerSieve)是一种能够在\(O(n)\)时间复杂度内,处理\([1,n]\)内质数的方法。其相比埃氏筛/埃拉托斯特尼筛法(EratosthenesSieve)的\(O(n\log\logn)\)时间复杂度,主要的优化在于欧式筛保证了所有正整数\(n\)均只被其最小质因数\({minp}_n......
  • Navicat 破解版安装教程_永久激活,亲测好用
    Navicat16破解版安装教程_激活码分享今天给大家分享一波Navicat16的破解版安装教程,通过激活工具一键生成激活码,输入Navicat即可完成激活,无图无真相,下面是我破解成功的截图:Navicat16破解激活成功截图废话少说,下面演示如何永久激活Navicat16。一、Navicat简介Nav......
  • 每日总结-23.11.27
    packageInterface;importgongneng.BackGroundPanel;importgongneng.FileTest;importgongneng.selfData;importjavax.imageio.ImageIO;importjavax.swing.*;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;import......