LCR 173. 点名(二分)

一、题目描述

LCR 173. 点名

某班级 n 位同学的学号为 0 ~ n-1。点名结果记录于升序数组 records。假定仅有一位同学缺席,请返回他的学号。

示例 1:

输入: records = [0,1,2,3,5]
输出: 4

示例 2:

输入: records = [0, 1, 2, 3, 4, 5, 6, 8]
输出: 7

二、题目解析

本题有多种解法:

但上述的解法的时间复杂度都是O(N),下面介绍O(logN)的最优二分解法。

本题的二段性比较难发现。

因为是有序的,并且是从0开始的有序数组,所以我们可以将数组分为两个部分,一部分就是数组的下标和数组本身的值相等,另一部分就是数组的下标要小于数组本身的值,这时我们要寻找丢失的值就是第二段的最小值!

注意细节问题:

注意特殊情况当数组完全是递增的情况下,会一直遍历到最后一个数据,但并不满足条件,因此在返回left的情况下,可以判断数组下标与相对应的值是否相等~

三、原码

class Solution {
public:int takeAttendance(vector<int>& records) {int left = 0;int right = records.size()-1;int mid = 0;while(left < right){int mid = left + (right - left)/2;//判断二段性,看下标的值和下标对应数组的值是否相等if(records[mid] == mid)left = mid+1;elseright = mid;}  //细节处理,看是否是完全递增if(records[left] == left)return left + 1;return left;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/412206.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简析居民小区配电房动力环境监控系统设计与实现

叶根胜 安科瑞电气股份有限公司 上海嘉定 201801 摘要&#xff1a;智能配电站电力环境监测系统建立了基于TCP/IP网络协议作为通信框架的三级监测网络&#xff0c;并建立了IP网络和监测中心进行传输。实现配电站房屋的远程监控管理。同时&#xff0c;采用集中管理模式&#xf…

【不需要网络不需要显卡】本地部署GPT

【不需要网络/不需要显卡】本地部署GPT 大家好&#xff0c;我是老 J 我们都知道ChatGPT目前只有两种使用方式&#xff0c;一种是直接去官网访问&#xff0c;适合个人用户&#xff1b;另一种是API调用&#xff0c;适合企业或者网站使用。这两种方式的门槛都比较高&#xff0c;…

android软件全屏时,输入法显示的输入框位置代码

一、问题描述 在输入密码框时,点击密码输入框,会跳出软键盘,同时附带一个输入框: 这个输入框并不随输入法设置,而是一个系统自带的配置。 当这个密码以明文的方式显示时,输入网址或者ip,长按后能够打开浏览器。这是我不希望出现的。 二、探索password的TextView 根据…

CentOS使用docker本地部署StackEdit Markdown编辑器并实现公网访问

文章目录 1. docker部署Stackedit2. 本地访问3. Linux 安装cpolar4. 配置Stackedit公网访问地址5. 公网远程访问Stackedit6. 固定Stackedit公网地址 StackEdit是一个受欢迎的Markdown编辑器&#xff0c;在GitHub上拥有20.7k Star&#xff01;&#xff0c;它支持将Markdown笔记保…

HackTheBox - Medium - Linux - Mentor

Mentor Mentor 是一台中等难度的 Linux 机器&#xff0c;其路径包括在到达 root 之前在四个不同的用户之间切换。使用可暴力破解的社区字符串扫描“SNMP”服务后&#xff0c;会发现用于“API”端点的明文凭据&#xff0c;该端点被证明容易受到盲目远程代码执行的影响&#xff…

xss和同源、同站、跨域

跨站脚本&#xff08;cross site script&#xff09;为了避免与样式css混淆&#xff0c;所以简称为XSS。 XSS是一种经常出现在web应用中的计算机安全漏洞&#xff0c;也是web中最主流的攻击方式。 XSS 攻击指黑客通过特殊的手段往网页中插入了恶意的 JavaScript 脚本&#xff0…

Android现代开发推荐 | Android Showcase 2.0

Android现代开发推荐 | Android Showcase 2.0 Android Showcase是一个完整的Android应用程序示例&#xff0c;它使用了现代的Android应用程序开发方法&#xff0c;集成了流行的开发工具、库和代码检查工具&#xff0c;以及强大的测试框架和持续集成&#xff08;CI&#xff09;…

沃尔玛测评自养号:引爆跨境电商销量的秘密武器

在竞争激烈的跨境电商市场中&#xff0c;如何快速提升销量并获得更多曝光&#xff1f;测评自养号成为越来越多卖家的秘密武器。本文将深入探讨测评自养号的优势、环境创建以及如何通过自养号助力引爆跨境电商销量。 一、测评自养号的优势 1、快速提升权重和流量&#xff1a;通过…

常用中间件漏洞

IIS6 IIS7 安装 控制面板-----打开关闭windows功能 添加角色-----添加IIS 启动之后访问localhost 复现 服务器换成IIS7 访问报错 大概就是缺少CGI模块 问题解决 添加php-cgi的路径 添加脚本映射 修改php.ini文件 将 cgi.fix_pathinfo1 然后设置一个图片 访问 在后缀加上/.…

Apache Zeppelin学习记录2

Apache Zeppelin学习记录2 文章目录 Apache Zeppelin学习记录2前言一、基础调用二、带参数调用1.代码块要增加一行z.textbox("folder_path", "input")2.读取result 总结 前言 上一章讲了如何使用zeppelin来接入python&#xff0c;本节我们来看看如何使用R…

大数据毕业设计:基于python美食推荐系统+爬虫+Echarts可视化+协同过滤推荐算法+Django框架(源码)✅

毕业设计&#xff1a;2023-2024年计算机专业毕业设计选题汇总&#xff08;建议收藏&#xff09; 毕业设计&#xff1a;2023-2024年最新最全计算机专业毕设选题推荐汇总 &#x1f345;感兴趣的可以先收藏起来&#xff0c;点赞、关注不迷路&#xff0c;大家在毕设选题&#xff…

React 原理

函数式编程 纯函数 reducer 必须是一个纯函数&#xff0c;即没有副作用的函数&#xff0c;不修改输入值&#xff0c;相同的输入一定会有相同的输出不可变值 state 必须是不可变值&#xff0c;否则在 shouldComponentUpdate 中无法拿到更新前的值&#xff0c;无法做性能优化操作…