当前位置: 首页 > news >正文

【剑斩OFFER】算法的暴力美学——点名

一、题目描述

二、算法原理

当我们看到这道题目时,我们一般是直接从题目给出的数组来找这些数字的规律,题目给出的数字的除了这些数字是逐渐递增的,就没了。所以我们不防从把数组的下标写出来,此时我们可以看到数组的数字和下标相等时,代码没有数字缺少,反之就是缺少一个数字;从数组的下标结合题目给出的数组来看,只要找缺少数字的那小部分的数组的最左边就是缺少的那个数字,当然缺少的不是上面绿色部分的8而是他的下标7。

思路:二分查找的最左端的二分查找的模板

当数组的中间点处于蓝色部分的数字时,让left往mid的后面找,不包含 mid :

if:nums[ mid ]  - mid == 0 ,left = mid +  1

else :right = mid

循环条件:left < right

求中点的方式:int  mid =  left + ( right - left )/2

特殊情况:

解决方法:left == records[ left ] ,表明里面没有数组里面没有缺少的数字,但是题目要求我们至少要一个数字缺少,所以:return recordes[ left ] + 1

三、代码实现

class Solution {
public:int takeAttendance(vector<int>& records) {int left = 0, right = records.size() - 1;while(left < right){int mid = left +  (right - left)/2;if(records[mid] - mid) right = mid;else left = mid + 1;}if(left == records[left]) return records[left] + 1;//处理特殊情况return left;}
};

http://www.dtcms.com/a/603325.html

相关文章:

  • 昆明做网站公司我网站建设
  • word文档文字的尾部空格设置不了下划线【解决办法】
  • 网站建设上线多久网站设计公司网页设计
  • 外贸网站一站式海外推广什么软件做网站链接
  • 做货代哪个网站上好找客户想搞一个自己的网站怎么做
  • BitLocker磁盘锁定解决方法
  • jEasyUI 使用标记创建树形菜单
  • 合肥模板网站建设费用帮网站做点击
  • 怎样创建网站dw龙岩平面设计
  • 从脚本到程序:如何构建一个可维护的Python项目结构?
  • 网站建设与维护试题及答案长沙网站建立公司
  • eventfd
  • YOLOv8轻量化改进实战——使模型更适配边缘设备
  • C语言程序编译器 | 提高开发效率,掌握C语言编程的关键工具
  • 泉州 网站建设公司首选东营网站建设培训
  • 南沙网站建设优化微信营销课2013是谁讲的
  • 英语网站排名访问网站速度很慢
  • 3.55基于51单片机温度报警器基于51proteus的DS18B20温度报警器+报告可设置上下限,低于或者高于都会有声光报警,蜂鸣器响LED灯亮。
  • 站牛网是做什么的网站页面如何架构
  • 做自媒体有哪些网站网站建设app开发合同
  • 做外贸搜索外国客户的网站网站建设技术合伙人的技术股份
  • 网站建设公司设计网页的工具甘肃省建设厅官方网站造价总站
  • Unity CullingGroup详解
  • 建设银行曲江支行网站上海信息公司做网站
  • 监理网站广东省公路建设公司网站
  • C语言编译器哪个好用 | 选择适合自己的C语言编译器提升编程效率
  • 企业做宣传网站多少钱制作网页之前必须先建立什么
  • 遗传算法求解TSP旅行商问题python代码实战
  • Servlet 网页重定向
  • Eclipse 生成 jar 包