二分查找一>0~n-1中缺失的数字(点名)

news2024/11/28 6:41:27

1.题目: 

 

 

2.解析:
方法一:用哈希表:记录存在的数字,找到哈希表为空的数字输出

Set<Integer> set = new HashSet<>();
        for(int x : records) set.add(x);

        for(int i = 0; i < set.size(); i++){
        if(!set.contains(i)) return i;
        }
        return set.size();

方法二:位运算异或 

int ret = 0;
        for (int i = 0; i < records.length; i++) {
            ret ^= records[i];
            ret ^= i + 1;
        }

        return ret;

方法三:直接遍历

int ret = 0;
        for(int i = 0; i < records.length; i++){
            if(records[i] != i) return i;
        }
        return records.length;

方法四:二分查找: 

注意:特殊情况整个数组元素及对应下标都一样时

 


        int left = 0,right = records.length-1;
        while(left < right){
            int mid = left + (right - left) / 2;
            if(records[mid] == mid) left = mid+1;
            else right = mid;
        }
        
        //特殊情况:整个数组元素及对应下标都一样时
        return records[left] == left ? left+1 : left;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

重新学习Mysql数据库3:Mysql存储引擎与数据存储原理

本文转自互联网 本系列文章将整理到我在GitHub上的《Java面试指南》仓库&#xff0c;更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star哈 文章首发于我的个人博客&#xff1a; www.how2playlife.com 本文是微信公众号【Java技术江湖…

STM32与QT实现串口传输结构体含源码

文章目录 一. 关于数据传输的方式1.1 基本数据类型传输1.2 结构体传输 二. STM32与QT实现串口传输结构体实例2.1 下位机的实现2.2 上位机的实现2.3 演示Demo 三. 注意事项3.1 关于字节对齐问题3.2 关于大小端问题 一. 关于数据传输的方式 在日常开发过程中&#xff0c;我们时常…

使用aloam跑hesai Pandar-XT32激光雷达数据

参考自利用aloam跑数据集_aloam数据集-CSDN博客 第一步&#xff1a;查看bag的信息 输入rosbag info来查看bag包的信息&#xff1a; joeyjoey-Legion-Y7000P-IRX9:~$ rosbag info /home/joey/Downloads/data2022/indoor/LiDAR_IMU.bag path: /home/joey/Downloads/da…

Java_EE 多线程技术(Thread)

多线程与并发编程 多线程介绍什么是程序&#xff1f;程序&#xff08;Program&#xff09;是一个静态的概念&#xff0c;一般对应于操作系统中的一个可执行文件。什么是进程?执行中的程序叫做进程(Process)&#xff0c;是一个动态的概念。其实进程就是一个在内存中独立运行的程…

2025秋招倒计时---招联金融

【投递方式】 直接扫下方二维码&#xff0c;或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus&#xff0c;使用内推码 igcefb 投递&#xff09; 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策…

股市期市内外盘高频分钟tick及均线策略分享

【数据库】银河金融数据库&#xff08;yinhedata.com&#xff09;可以获取大量历史行情数据&#xff0c;包含分钟&#xff0c;tick&#xff0c;日。不限于国内外&#xff0c;股票期货基金&#xff0c;ETF、期权等 【策略分享】一、引言均线策略作为技术分析的重要工具&#xff…

Kubesphere4.1插件网关、devops控制页面白页面问题解决

在使用Kubesphere4.1版本时&#xff0c;安装完成devops插件后‘DevOps项目’管理页面出现白页面&#xff0c;无法进行配置。包括网关等控制页面都会出现白页面。 经过查看版本信息发现是4.1版本存在问题&#xff0c;目前不支持。 处理问题&#xff1a; 目前 Kubesphere发布了4…

【软件测试】最佳软件测试基础入门教程

目录 前言一、顺序式开发模型二、 瀑布模型三 、V型模型四、迭代和增量开发模型五、 项目和产品背景下的软件开发 前言 软件开发生命周期的测试 本章简要介绍了软件开发项目中常用的生命周期模型&#xff0c;并解释了测试在每个模型中扮演的角色。它讨论了各种测试级别和测试…

python-PyQt项目实战案例:制作一个简单的图像处理工具

文章目录 1.设计UI2.编写功能代码2.1 初始化ui界面及类成员参数2.2 添加菜单栏2.3 建立信号/槽连接 3.主要功能代码及效果4.设置图像自动调节长宽尺寸但不改变长宽比例参考文献 1.设计UI 对于UI的设计可以通过qt designer直接绘制&#xff0c;也可以通过编写python代码实现。当…

10万+收藏!10万转发!AI绘画如何助力育儿赛道引爆短视频平台?

在自媒体领域&#xff0c;内容创作的竞争日益激烈&#xff0c;但育儿自媒体一直是一块热门且持久的“金矿”&#xff0c;吸引了无数创作者投身其中。然而&#xff0c;如何在这片红海中脱颖而出&#xff0c;成为了许多创作者面临的难题。而AI绘画的出现&#xff0c;无疑解决了创…

约束使用方法:

设置主键&#xff1a; 该列的值用来唯一标识表中每一行&#xff0c;用于强制表的实体完整性。这样的列定义为表的主键&#xff0c;也就是说主键的列中不允许有相同的数据。 设置默认&#xff1a; CREATE TABLE pet( #not null 非空 ZEROFILL 补零 先补零&#xff0c;在非空 id…

解锁机器人视觉与人工智能的潜力,从“盲人机器”改造成有视觉能力的机器人(上)

正如人类依赖眼睛和大脑来解读世界&#xff0c;机器人也需要自己的视觉系统来有效运作。没有视觉&#xff0c;机器人就如同蒙上双眼的人类&#xff0c;仅能执行预编程的命令&#xff0c;容易碰撞障碍物&#xff0c;并犯下代价高昂的错误。这正是机器人视觉发挥作用的地方&#…

k8s1.27部署ingress 1.11.2

k8s1.27部署ingress 1.11.2 要求&#xff1a; 1、使用主机网络。 2、多节点部署&#xff0c;以来标签&#xff1a;isingressistrue ingress1.11.2支持版本 官方参考链接&#xff1a; https://github.com/kubernetes/ingress-nginx/ 官网yaml https://raw.githubuserconten…

DYNPRO_SYNTAX_ERROR 主屏幕调用子屏幕,程序运行时错误

文章目录 问题描述问题查找和解决 问题描述 问题查找和解决

比特币社区心心念念的BTCFi进展如何了?——比特币与DeFi的未来

比特币在去中心化金融&#xff08;DeFi&#xff09;中的角色正在发生深刻变革。作为全球首个加密货币&#xff0c;比特币的主要用途从最初的点对点支付正逐渐转向更复杂的金融应用。通过BTCFi&#xff08;比特币与DeFi的结合&#xff09;&#xff0c;比特币生态系统正加速崛起&…

QD1-P16 HTML 按钮标签(button)

本节学习 HTML 常用标签&#xff1a;button ‍ 本节视频 www.bilibili.com/video/BV1n64y1U7oj?p16 ‍ ​<button>​ 标签在 HTML 中用于创建按钮&#xff0c;它是一个交互式元素&#xff0c;通常用于提交表单或触发某个脚本。以下是 <button>​ 标签的一些基本…

基于FPGA的DDS信号发生器(图文并茂+深度原理解析)

篇幅有限&#xff0c;本文详细源文件已打包 至个人主页资源&#xff0c;需要自取...... 前言 DDS&#xff08;直接数字合成&#xff09;技术是先进的频率合成手段&#xff0c;在数字信号处理与硬件实现领域作用关键。它因低成本、低功耗、高分辨率以及快速转换时间等优点备受认…

C++ stack和queue的使用介绍和模拟实现

内容摘要&#xff1a; 本文介绍了stack和queue的构造函数和一些成员函数&#xff0c;并模拟实现了stack和queue&#xff0c;分析了为什么选择deque作为适配器默认封装的对象 stack的介绍 栈是只能够在一端进行插入和删除的&#xff0c;这就是我们一直常说的“后进先出”&#x…

未来10年,哪些行业将被AI彻底颠覆?

随着人工智能&#xff08;AI&#xff09;技术的快速发展&#xff0c;许多行业的工作方式正在发生显著变化。一些原本依赖人工处理的任务&#xff0c;正逐渐由AI接手并优化。在未来&#xff0c;AI将不仅仅是辅助工具&#xff0c;它可能会彻底改变某些行业的运作模式&#xff0c;…

通过AI技术克服自动化测试难点(下)

前面的文章里我们对可以应用到测试中的AI技术做了整体介绍&#xff0c;详细介绍了OpenCV技术、OCR技术和神经网络&#xff0c;本文我们继续为大家介绍卷积神经网络、数据集以及AI技术在其他方面和测试相关的创新。 卷积神经网络整体上的原理是这样的&#xff0c;首先在底层特征…