牛客题霸 二分查找 C++题解/答案

题目描述

请实现有重复数字的有序数组的二分查找。
输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。
示例1
输入
复制
5,4,[1,2,4,4,5]
返回值
复制
3

题解:

二分模板题
如果是学竞赛的应该很懂
二分的本质就像是翻字典,一开始l=0,r=n,先翻到最中间(mid=(r+l)/2),然后看目标单词是在左侧还是右测,如果是在左侧,我们就继续翻左侧的中间页,重复上述操作,l=0,r=mid-1,mid=(l+r)>>1

代码:

class Solution {public:/*** 二分查找* @param n int整型 数组长度* @param v int整型 查找值* @param a int整型vector 有序数组* @return int整型*/int upper_bound_(int n, int v, vector<int>& a) {// write code hereint l=0;int r=n-1;if(a[n-1]<v)return n+1;while(l<=r){int mid=(l+r)>>1;//if(a[mid]==v)return mid+1;if(a[mid]<v)l=mid+1;else r=mid-1;}return l+1;}
};

牛客题霸 二分查找 C++题解/答案相关推荐

  1. 牛客题霸 [矩阵查找] C++题解/答案

    牛客题霸 [矩阵查找] C++题解/答案 题目描述 请写出一个高效的在m*n矩阵中判断目标值是否存在的算法,矩阵具有如下特征: 每一行的数字都从左到右排序 每一行的第一个数字都比上一行最后一个数字大 ...

  2. 牛客题霸 [ 寻找峰值] C++题解/答案

    牛客题霸 [ 寻找峰值] C++题解/答案 题目描述 山峰元素是指其值大于或等于左右相邻值的元素.给定一个输入数组nums,任意两个相邻元素值不相等,数组可能包含多个山峰.找到索引最大的那个山峰元素并 ...

  3. 牛客题霸 [ 缺失数字] C++题解/答案

    牛客题霸 [ 缺失数字] C++题解/答案 题目描述 从0,1,2,-,n这n+1个数中选择n个数,找出这n个数中缺失的那个数,要求O(n)尽可能小. 题解: 我们可以用map来标记已出现过的数字 因 ...

  4. 牛客题霸 [ 大数乘法] C++题解/答案

    牛客题霸 [ 大数乘法] C++题解/答案 题目描述 以字符串的形式读入两个数字,编写一个函数计算它们的乘积,以字符串形式返回. (字符串长度不大于10000,保证字符串仅由'0'~'9'这10种字符 ...

  5. 牛客题霸 [ 孩子们的游戏] C++题解/答案

    牛客题霸 [ 孩子们的游戏] C++题解/答案 题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样 ...

  6. 牛客题霸 [比较版本号] C++题解/答案

    牛客题霸 [比较版本号] C++题解/答案 题目描述 如果version1 > version2 返回1,如果 version1 < version2 返回-1,不然返回0. 输入的ver ...

  7. 牛客题霸 [矩阵乘法] C++题解/答案

    牛客题霸 [矩阵乘法] C++题解/答案 题目描述 给定两个nn的矩阵A和B,求AB. 题解: 都学过矩阵相乘把,[i][k]=[i][j]*[j][k] 代码: class Solution {pu ...

  8. 牛客题霸 [顺时针旋转矩阵] C++题解/答案

    牛客题霸 [顺时针旋转矩阵] C++题解/答案 题目描述 有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度. 给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于 ...

  9. 牛客题霸 [丑数] C++题解/答案

    牛客题霸 [丑数] C++题解/答案 题目描述 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7. 习惯上我们把1当做是第一个丑数.求 ...

最新文章

  1. PostgreSQL中的数据库实例、模式、用户(角色)、表空间
  2. SQL Server中执行正则表达式
  3. Java线程池的工作原理与实现
  4. 哪里学php开发,哪里学web开发
  5. rtt面向对象oopc——0.类、对象及派生
  6. 【优化覆盖】基于matlab模因算法求解集群无线传感器网络中节能覆盖控制优化问题【含Matlab源码 1563期】
  7. 除了深度学习,你需要知道AI技术的23个方向
  8. 将vscode打造成无敌的IDE(5)打造shell IDE--三大神器
  9. 《经济机器是怎样运行的》笔记(一)
  10. getchar函数详解看这一篇就够了-C语言(函数功能、使用、返回值)
  11. UG二次开发自定义刀轨
  12. Web前端-vue 开发命名规范
  13. windows挂载webdav
  14. 时钟源系统(时统系统)GPTP对自动驾驶的重要性
  15. Python基础系列N讲 | 1500字详解Anaconda安装教程(附安装包)
  16. 短视频源码PHP实现手势密码的方法
  17. 华为模拟器eNSP如何安装,以及无法安装成功的问题解决
  18. 快录屏 v1.3.8
  19. orcale直接导出Excel
  20. python中explode是什么意思_python中explode有什么用

热门文章

  1. 备战美赛,这些你应该知道的知识点
  2. python 线程 的类库_python类库32[多线程]
  3. ubuntu 没有php.ini,linux – 在Ubuntu中我对php.ini进行了更改,但没有任何反应
  4. 为什么年龄大了近视还增加_年龄明明一样大,为什么有人长得年轻,有人显老呢?...
  5. linux上用的端口转发工具,linux下最简单好用的的端口转发工具
  6. thinkpadt450s换键盘视频_ikbc c87 入门级有线机械键盘测评
  7. 电子商务与计算机科学与技术的相关性,电子商务、计算机科学与技术、法学等相关专业。.doc...
  8. java 3des 32位密钥_3des,java_java 中32位秘钥长度的 3des加密方法?,3des,java - phpStudy...
  9. c++ eos智能合约开发_[EOS智能合约]第二节:用EOS开发一个To-do List小应用
  10. zynq网络时钟控制寄存器_ZYNQ笔记(6):普通自定义IP封装实现PL精准定时中断...