34. 在排序数组中查找元素的第一个和最后一个位置(C语言)

2023-05-16

笨办法,先找第一个等于target的位置,再找最后一个等于target的位置 

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* searchRange(int* nums, int numsSize, int target, int* returnSize){
    *returnSize=2;
    int *ret=malloc(2*4);
    int lo=0,hi=numsSize-1;
    int pre;
    pre=prefind(nums,target,lo,hi);
    int post;
    post=postfind(nums,target,lo,hi,numsSize);
    ret[0]=pre;
    ret[1]=post;
    return ret;
}
int prefind(int *nums,int target,int low,int high){
    
    while(low<=high){
        int mid=low+(high-low)/2;
        if(nums[mid]<target){
            low=mid+1;
        }else if(nums[mid]>target){
            high=mid-1;
        }else{
            if((mid==0)||(nums[mid-1]!=target))return mid;
            else high=mid-1;
        }
    }
    return -1;
}

int postfind(int *nums,int target,int low,int high,int numsSize){
    while(low<=high){
        int mid=low+(high-low)/2;
        if(nums[mid]<target){
            low=mid+1;
        }else if(nums[mid]>target){
            high=mid-1;
        }else{
            if((mid==numsSize-1)||(nums[mid+1]!=target))return mid;
            else low=mid+1;
        }
    }
    return -1;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

34. 在排序数组中查找元素的第一个和最后一个位置(C语言) 的相关文章

  • CSDN 博客备份工具

    前言 核心 登录模块 备份模块 博文扫描模块 演示 如何使用 效果 总结 前言 近段时间以来 听群友博友都在谈论着一件事 CSDN博客怎么没有备份功能啊 这其实也在一定程度上表征着大家对于文章这种知识性产品的重视度越来越高 也对于数据的安全
  • 数据链路层传输故障分析

    数据链路层传输故障分析 依据链路层发送与接收的帧格式 xff0c 说明在数据链路层 网络层 传输层接收数据的过程中 xff0c 出现以下情况时 xff0c 可能出现的问题是什么 xff1f A xff09 利用网络助手可以在接收端接收到发送
  • 【Qt串口调试助手】1.2 - 串口数据接收不发生换行,CH340 / CP2102 多硬件兼容

    上一篇提到 xff1a 对串口接收的显示 xff0c 使用的是当前位置插入 43 移动鼠标光标到末尾的方式 这种方法可以有效解决 串口数据接收发生换行的问题 xff0c 并且解决 CH340 CP2102 多硬件显示结果不一致的问题 那有没
  • Altium AD20的四层板叠层管理、平面层20H内缩

    AD新建的PCB默认为双层板 xff0c 多层板需要自行添加叠层 下面以四层板为例进行说明 AD20的叠层管理 xff0c 叠层为四层板 工具 层叠管理器 xff08 快捷键 xff1a D K xff09 能够看出这是一个普通的双层板结构
  • 开源10轴IMU PCB,基于MEMS传感器MPU6500-HMC5983-AK8975-BMP280-MS5611设计,适用于多轴无人机、平衡车、惯导入门

    以MPU6500 HMC5983 AK8975 BMP280 MS5611为传感元件的10轴IMU PCB xff0c 集成MEMS加速度计 陀螺仪 地磁 气压计 有三种不同尺寸的PCB组合样式 xff0c Altium格式 xff0c 可
  • 操作系统任务执行和任务切换的基本实现原理

    任务的执行 软件或处理器可以使用以下方法之一来调度执行一个任务 xff1a 使用CALL指令明确地调用一个任务 xff1b 使用JMP指令明确地跳转到一个任务 Linux内核使用的方式 由处理器 隐含地调用一个中断句柄处理任务 xff1b
  • AD20 PCB导出Gerber、拼板,华秋DFM一键拼板,同理支持其他PCB EDA软件的Gerber导入与拼板

    Altium PCB的拼板着实头疼 xff0c 因没有自带的拼板功能 xff0c 每次都要手动重复同样的操作 xff0c 费时费力 xff0c 有没有种简单的方法呢 xff1f 这里推荐华秋DFM 华秋DFM是一款高效的PCB设计软件 xf
  • 安装win11电脑必须支持TPM2.0和必须支持安全启动的解决方法

    安装win11电脑必须支持TPM2 0和必须支持安全启动的解决方法 一 开启TPM设置二 开启安全启动设置三 更改硬盘模式 xff08 需硬盘支持 xff09 安装 Win11 的基本要求 xff0c 在win11最低要求是提示 xff0c
  • QCY T8无线蓝牙耳机连接电脑时无限断连解决办法

    参考 xff1a https www zhihu com question 434919223 answer 1652118128 知乎问题中十三大佬的回答亲测有效 xff0c 记录一下 在win10连t8时会出现一个音频类别的QCY T8
  • Linux 高并发服务器实战 - 5 项目实战

    Linux 高并发服务器实战 5 项目实战 1 阻塞 非阻塞 同步 异步 网络IO 典型的一次IO的两个阶段是什么 xff1f 数据就绪 和 数据读写 网络IO阶段1 在操作系统 TCP接收缓冲区 数据就绪 xff1a 根据系统IO操作的就
  • js实现打字机效果---Day06

    我常想象这样一幅画面 xff1a 素雅的大背景 xff0c 伴着可心的音乐 xff0c 优雅旋转着的芭蕾舞者 xff0c 旁边那不断打出的文字 xff0c 仿佛就这样娓娓道来他们那美美的故事 xff1b 也常想象 xff1a 呼喇啦甩动的大
  • 纯css3实现漂亮的对话框----Day07

    姑且先不来讨论css3跟css的区别 xff0c 也不说html和html5的不同 xff0c 虽然这很关键 xff0c 但是现阶段还真的没整利落了 xff0c 姑且就这些应用先用着 xff0c 等自己有些见解了再来探讨那些深层次的问题 先
  • 纯css3实现饼状图-------Day21

    现代网站在商务应用中比较广泛 xff0c 什么oa xff0c 什么erp xff0c 除了导入导出 xff0c 就是数据统计 xff0c 再不然就来个做个报表 xff0c 而饼状图作为数据的一种直观统计显示 xff0c 应用是非常广泛的
  • 你是如何理解var e=e||window.event的------Day26

    你是如何理解var e 61 e window event的 xff1f 相信很多人都能给我个回答说是 xff1a 为了实现多种浏览器兼容 不错 xff0c 确实是为了实现浏览器兼容 xff0c 但是它又是如何实现浏览器兼容的呢 xff1f
  • js实现回放拖拽轨迹-------Day48

    今天有点小高兴 xff0c csdn博客浏览量过万了 xff0c 在过去还从来没有过这么高的浏览量呢 xff0c 不得不说 xff0c 太多时候还是有些矫情 xff0c 可看到这些鼓励还是忍不住高兴啊 xff0c 至少 xff0c 这样让我
  • js实现动态删除表格的行或者列-------Day57

    昨天记录了动态添加表格的一行 xff0c 当然这个一行是指一行数据 xff0c 也就是说一行多少列也是加上的 xff0c 并且第几列的内容都可以添加上 xff0c 先来回顾下它的实现的关键点 xff1a 1 var row 61 table
  • 了解MSIL汇编和IL汇编评估堆栈

    assembly extern mscorlib assembly Test ver 1 0 1 0 module test exe method static void main cil managed maxstack 1 entryp
  • js实现表格的选中一行-------Day58

    最开始想更多的用js来动态操作表格 xff0c 是因为在应用了easyUI之后 xff0c 发现直接写一个 lt table id 61 34 tt 34 gt lt table gt xff0c 这就够了 xff0c 界面里面就剩下这么一
  • 幸有一事,生死可许

    已然到了岁末 xff0c 2014就要结束 xff0c 迎来崭新的2015 xff0c 颇多感慨 xff0c 颇多难忘 与其说是2014年是我职业生涯中至关重要的一年 xff0c 倒不如说是我人生道路上极为重要的一步来的更为贴切 这一年忙忙
  • 积跬步,聚小流-------关于UML时序图

    uml时序图的存在 在上一篇中记录了uml类图 xff0c 用类图来描述代码中所需要的类以及相互之间的关系 xff0c 也就立体的将整个程序框架展现在了我们面前 xff0c 像一幅画 xff0c 有山有水有人 一张照片只能定格当时的美好 x

随机推荐

  • 积跬步,聚小流------用smartpaginator来做分页

    网络上的实例 xff08 jquery smarypaginator 例图 xff09 如果说是从 百度 上搜索过 jquery分页插件 的朋友 xff0c 相信对上面的图片不会陌生 xff0c 几乎所有介绍 jquery分页插件 的文章中
  • 我的2017-搭建个人网站,搭建PHP环境(2)

    上周确定了 xff0c 想要应用的后台语言 xff0c 面临的最大问题就是 xff1a php我不会啊 xff0c 哈哈哈哈 xff0c 所以接下来首先要做的就是了解 学习php的相关知识 接下来的第一步 xff1a 环境搭建 1 下载安装
  • 我的2017-搭建个人网站,hello PHP(2)

    学习一门语言 xff0c 例行惯例 xff0c 先来个 hello world 搭建好了php环境 xff0c 然后就可以运行php了 xff0c 首先用一种最简单的方法 xff0c 在wamp安装位置 xff08 相应的文件夹 xff09
  • 我的2017-搭建个人网站,自拟定代码根目录

    wampserver集成安装环境安装的php的运行根目录在wamp文件夹中的www文件夹下 xff0c 而为了有效的将代码和服务器进行分离 xff0c 可以采用自拟定代码根目录进行修改 1 确定代码编辑位置 xff0c 修改服务器默认指向
  • 2013年终总结

    2013年即将过去 xff0c 回顾这一年 xff0c 有得有失 xff0c 有喜有悲 xff0c 些许记忆碎片留在脑海中 简单做个总结 xff0c 也算划上一个完美的句号 xff0c 再迎接充满挑战的2014 xff01 项目 一年过来
  • 编译原理:求First集与Follow集的方法

    明天就要考试了 xff0c 发现一直理解错了First集与Follow集的解法 xff0c 贴上比较好理解的 文法 xff1a S ABc A a B b First集合求法 能 由非终结符号推出的所有的开头符号或可能的 xff0c 但要求
  • 位运算n & (n-1)的妙用

    本文转自 xff1a http blog csdn net zheng0518 article details 8882394 按位与的知识 n amp n 1 作用 xff1a 将n的二进制表示中的最低位为1的改为0 xff0c 先看一个
  • 了解CesiumLab地理信息基础数据处理平台模型切片参数设置

    前文转换一个fbx模型为3dtiles没有成功 xff0c 先来看一下参数设置 xff1b 参数设置 空间参考 通用模型大部分没有自带空间参考 xff0c 使用一个默认值 ENU 39 90691 116 39123 xff1b 此位置在天
  • 二分查找算法(Java版)

    二分查找算法是非常经典且基本的算法 1 二分查找又称折半查找 xff0c 优点是比较次数少 xff0c 查找速度快 xff0c 平均性能好 xff1b 其缺点是要求待查表为有序表 xff0c 且插入删除困难 因此 xff0c 折半查找方法适
  • 电脑眼睛保护色——绿豆沙色

    眼科医生建议电脑屏幕不要用白色 xff0c 因为白色对眼睛的刺激是最大的 xff0c 最损伤视力 xff01 眼科医生推荐的颜色是 柔和的淡绿色 xff0c 也有人叫做绿豆沙色 按HSU 设置为 xff1a 色度 HUE xff1a 85
  • Java中两个数交换的细节问题

    在码代码过程中 xff0c 两个数交换是经常用到的 xff0c 但在Java 中 xff0c 如果忽略了值传递和引用传递就很容易出错 看一下两个整数交换代码 xff1a public void swap int a int b int t
  • 微信 Mars Android Sample 源码分析

    注 xff1a 原文首发地址 零 前言 Mars 是微信官方开源的跨平台跨业务的终端基础组件 xff0c 具有高质量网络连接模块 长短连接 智能心跳机制 高性能日志模块和网络监测组件等 而整个 Android Sample 是基于 Mars
  • Android NDK 开发:实战案例

    0 前言 如果只学理论 xff0c 不做实践 xff0c 不踩踩坑 xff0c 一般很难发现真正实践项目中的问题的 xff0c 也比较难以加深对技术的理解 所以延续上篇 JNI 的实战Android NDK开发 xff1a JNI实战篇 x
  • Android NDK 开发:CMake 使用

    1 前言 当在做 Android NDK 开发时 xff0c 如果不熟悉用 CMake 来构建 xff0c 读不懂 CMakeLists txt 的配置脚本 xff0c 很容易就会踩坑 xff0c 遇到编译失败 xff0c 一个很小的配置问
  • python中的“main()方法”

    估计很多人跟我一样初学python看代码的时候先找一下main 方法 xff0c 从main往下看 但事实上python中是没有你理解中的 main 方法的 言归正传 if name 61 61 34 main 34 可以看成是python
  • 【大陆ARS408毫米波雷达】一种利用串口解析雷达数据的方法

    硬件平台 xff1a ARS408毫米波雷达 can转485转换器 485转串口转换器 软件平台 xff1a Windows10 python3 本篇博客实现的功能 xff1a 一 通过两个转换器将毫米波雷达的原始数据传入电脑端的串口中 二
  • ubuntu14.04系统下对SD卡分区

    在ubuntu14 04系统下对SD卡进行分区分为3步 xff1a 注意 xff1a 进行SD卡分区时 xff0c 用户操作权限为root权限 xff01 1 umount SD卡 查看SD卡挂载目录 xff0c 一般在 media目录下
  • docker安装图形化管理界面

    首先看下这个界面的样子 还是比较好看 xff0c 而且在同一个局域网中都可以登录进行管理 说下安装教程吧 首先下载这个镜像 xff1a sudo docker pull portainer portainer 然后创建这个容器 sudo d
  • JSP小脚本学习

    小脚本 可以将任何数量的小脚本包含在页面中 xff0c 小脚本是有效的JAVA语言语句 xff0c 变量或方法声明或表达式 小脚本的语法 xff0c lt code fragment gt 入门示例 xff1b lt 64 page lan
  • 34. 在排序数组中查找元素的第一个和最后一个位置(C语言)

    笨办法 xff0c 先找第一个等于target的位置 xff0c 再找最后一个等于target的位置 Note The returned array must be malloced assume caller calls free int