算法题每日一练---第78天:二分查找

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第13天, 点击查看活动详情。

一、问题描述

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1

题目链接: 二分查找

二、题目要求

样例 1

输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4
复制代码

样例 2

输入: nums = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不存在 nums 中因此返回 -1
复制代码

考察

1.二分查找
2.建议用时10~25min
复制代码

三、问题分析

这一题是二分查找实际应用了,对于二分查找来说,其实就是不断向中间逼近的一个过程,查找的序列必须是有序的,乱序的话可没有办法进行二分查找哦。

1.png

如上图,二分查找一般分成下面5个步骤:

  • 设定左右指针,l=0,r=n-1
  • 找出中间位置,mid=l+(r-l)/2 (这样写防止溢出)
  • nums[mid] == target 则返回该位置下标
  • nums[mid] > target 则右侧指针移到中间
  • nums[mid] < target 则左侧指针移到中间

四、编码实现

class Solution {
public:
    int search(vector<int>& nums, int target) {
        int l,r,n=nums.size(),mid;//设定左右指针
        l=0,r=n-1;
        while(l<=r)
        {
            mid=l+(r-l)/2;//找出中间位置
            if(nums[mid]==target)//成功找到,返回该位置下标
                return mid;
            if(nums[mid]>target)//右侧指针移到中间
                r=mid-1;
            if(nums[mid]<target)//左侧指针移到中间
                l=mid+1;
        }
        return -1;
    }
};
复制代码

五、测试结果

2.png

3.png

猜你喜欢

转载自juejin.im/post/7085886232328306719
算法题每日一练---第78天:二分查找
算法题每日一练---第59天:插入
算法题每日一练---第37天:打家劫舍
【洛谷每日一练】 P2678 跳石头 二分查找
算法题每日一练---第56天:二进制中质数个数
算法题每日一练---第73天:加一
算法题每日一练---第58天:错误的集合
算法题每日一练---第60天:快速幂
算法题每日一练---第61天:数的幂次
算法题每日一练---第55天:不用加号的加法
算法题每日一练---第57天:解码异或后的数组
算法题每日一练---第80天:两数之和
算法题每日一练---第91天:组合总和 III
算法题每日一练---第4天:图像模糊问题
算法题每日一练---第21天:全排列
算法题每日一练---第71天:回文数
算法题每日一练---第72天:数字 1 的个数
算法题每日一练---第76天:丑数 l
算法题每日一练---第77天:存在重复元素
算法题每日一练---第79天:矩阵置零
算法题每日一练---第103天:目标值*2
算法题每日一练---第63天:优秀的拆分
算法题每日一练---第64天:螺旋矩阵 I
算法题每日一练---第100天:消失的数字+左旋转字符串
算法题每日一练---第33天: 阅兵方阵
算法题每日一练---第39天:买卖股票的最佳时机
算法题每日一练---第62天:Pow(x, n)
算法题每日一练---第65天:螺旋矩阵 II
算法题每日一练---第70天:最长递增子序列
算法题每日一练---第74天:快乐数
今日推荐
火速冲上 GitHub 热榜 —— 开源编程语言、框架哪有这么可爱?
北京人形机器人创新中心发布全球首个纯电驱拟人奔跑的全尺寸人形机器人“天工”
LFOSSA 源来如此公开课 | 掌握云原生未来:CNCF 认证全面攻略与备考秘籍
国产云输入法——仅华为无云端数据上传安全问题
开源日报 | 工业开源项目OGG 1.0;姐姐,你要和我一起配置火狐吗;苹果AI遥遥落后?Fedora 40
开放签电子签章:停止新增,优化体验,前进更进(五一假期前工作)
周排行
Metasploit文件目录与入侵基本概念
跨域(CORS)请求问题[No 'Access-Control-Allow-Origin' header is present on the requested resource]常见解决方案
CodeIgniter 源码解读之 CodeIgniter.php(二)
SAS入门之(四)改变数据类型
初识元组
[数学建模]数学建模算法和模型(B站视频)(二)
Nginx 服务器源码安装配置流程
C#实现语音视频录制 【基于MCapture + MFile】
开发进度4
下载安装vue的方法网址
每日归档
更多
2024-04-28(0)
2024-04-27(56)
2024-04-26(39)
2024-04-25(22)
2024-04-24(36)
2024-04-23(26)
2024-04-22(39)
2024-04-21(0)
2024-04-20(6)
2024-04-19(5)

资讯网永城属于河南哪个城市seo优化工傅佩荣详解周易网站建设排名起名周易软件做医疗器械公司起名爱国作文题记韩三千苏迎夏镇江网站网站建设北京金杜律师事务所手上莫名起红点而且痒有什么方法解决睡觉多梦大蒜种植用什么肥余姓女生起名参考五行属土有什么字女孩起名冬季养生应该吃什么网址优化推广seo减肥美容院起名羽月希沈姓男孩男孩起名笔画八画的字起名宜用压敏电阻寿命计算东北饺子起什么店名好起名男孩单字鼠年适合种植的花工程装饰公司起名字开鲁网站设计周易第十卦详解网站制作明细报价记录表周易文字五行属性大字典少年生前被连续抽血16次?多部门介入两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”淀粉肠小王子日销售额涨超10倍高中生被打伤下体休学 邯郸通报单亲妈妈陷入热恋 14岁儿子报警何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言张家界的山上“长”满了韩国人?男孩8年未见母亲被告知被遗忘中国拥有亿元资产的家庭达13.3万户19岁小伙救下5人后溺亡 多方发声315晚会后胖东来又人满为患了张立群任西安交通大学校长“重生之我在北大当嫡校长”男子被猫抓伤后确诊“猫抓病”测试车高速逃费 小米:已补缴周杰伦一审败诉网易网友洛杉矶偶遇贾玲今日春分倪萍分享减重40斤方法七年后宇文玥被薅头发捞上岸许家印被限制高消费萧美琴窜访捷克 外交部回应联合利华开始重组专访95后高颜值猪保姆胖东来员工每周单休无小长假男子被流浪猫绊倒 投喂者赔24万小米汽车超级工厂正式揭幕黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发当地回应沈阳致3死车祸车主疑毒驾恒大被罚41.75亿到底怎么缴妈妈回应孩子在校撞护栏坠楼外国人感慨凌晨的中国很安全杨倩无缘巴黎奥运校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变王树国卸任西安交大校长 师生送别手机成瘾是影响睡眠质量重要因素国产伟哥去年销售近13亿阿根廷将发行1万与2万面值的纸币兔狲“狲大娘”因病死亡遭遇山火的松茸之乡“开封王婆”爆火:促成四五十对奥巴马现身唐宁街 黑色着装引猜测考生莫言也上北大硕士复试名单了德国打算提及普京时仅用姓名天水麻辣烫把捣辣椒大爷累坏了

资讯网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化