每天一道leetcode:剑指 Offer 53 - II. 0~n-1中缺失的数字(适合初学者二分查找)
今日份题目:
一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。
示例1
输入: [0,1,3]
输出: 2
示例2
输入: [0,1,2,3,4,5,6,7,9]
输出: 8
提示
1 <= 数组长度 <= 10000
题目思路及代码
方法一:暴力查找
从头到尾,用一个int型数据记录数组当前位置本应为那个数,然后两者进行判断,如果不同就返回记录的数,相同就到下一个继续判断。
class Solution
{
public:int missingNumber(vector<int>& nums) {int c=0;for(int i=0;i<nums.size();i++) {if(nums[i]!=c) return c;c++;}return nums.size();}
};
方法二:二分查找
循环遍历本应出现的所有的数,判断是否存在于数组中,如果不存在就返回这个数,如果所有数都存在,说明确实的是数组长度的那个数。二分查找可以使时耗降低。
class Solution
{
public:bool find(vector<int>& nums,int target)//二分查找target是否在数组中{int l=0,r=nums.size()-1,n=nums.size();int mid;while(l<=r){mid=(l+r)/2;if(nums[mid]>target){r=mid-1;}else if(nums[mid]<target){l=mid+1;}else return true;}return false;}int missingNumber(vector<int>& nums) {for(int i=0;i<nums.size();i++) //遍历所有应该出现的数判断是否存在{bool cur=find(nums,i);if(cur==false) return i;}return nums.size();}
};
提交结果
暴力查找
二分查找
欢迎大家在评论区讨论,如有不懂的代码部分,欢迎在评论区留言!
相关文章:

每天一道leetcode:剑指 Offer 53 - II. 0~n-1中缺失的数字(适合初学者二分查找)
今日份题目: 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 示例1 输入: [0,1,3] 输出: 2 示例2 …...

玩机搞机---安卓新机型payload.bin刷写救砖 无需专用线刷包
目前的新机型官方卡刷包解包后都是payload.bin分区格式的卡刷固件。而有个别一些机型没有线刷包,当这些机型出现系统问题的时候有以下几种方法参考救砖。遇到类似故障的朋友可以借鉴参考下. 其中的不足和相关的资源可以参考这两个博文。任何教程的目的只是拓展你的…...

配置固定二级子域名远程访问内网群晖NAS 7.X版 【内网穿透】——“cpolar内网穿透”
配置固定二级子域名远程访问内网群晖NAS 7.X版 【内网穿透】 文章目录 配置固定二级子域名远程访问内网群晖NAS 7.X版 【内网穿透】前言1. 创建一条固定数据隧道2. 找到“保留二级子域名”栏位3. 重新编辑之前建立的临时数据隧道4. 进入“在线隧道列表”页面5. 在其他浏览器访问…...

【枚举】CF1706 C
有人一道1400写了一个小时 Problem - C - Codeforces 题意: 思路: 首先先去观察样例: 很显然,对于n是奇数的情况,只有一种情况,直接操作偶数位就好了 主要是没搞清楚n是偶数的情况 其实有个小技巧&…...

uniapp-疫情应急管理系统学生端
1 疫情资讯展示 <template><view class"container"><uni-section title"自定义卡片内容" type"line"><uni-card title"基础卡片" class"card-box" v-for"(item,index) in epidemicNewsList"…...

FreeRTOS的线程间通信
一、分类 FreeRTOS的线程间通信分为这几大类 由于我还在学习中,目前显从信号开始记录学习 二、逐块讲解 1、信号(osSignalWait osSignalSet) FreeRTOS从V8.2.0版本开始提供任务通知这个功能,每个任务多有一个32位的通知值&am…...

Linux内存管理工作原理:
Linux使用虚拟内存和内存映射来管理内存。每个进程都有独立的虚拟地址空间,通过将虚拟地址映射到物理内存,实现对内存的管理和访问。 虚拟地址空间划分:32位系统中,内核空间占1GB,用户空间占3GB;64位系统中…...

【并发编程】ShenyuAdmin里面数据同步用到的无锁环形队列LMAX Disruptor并发框架
并发,数据同步往往是业务开发中比较重要的部分。 shenyu网关数据同步设计方案图 shenyu官网给出的同步设计方案图如下: 基于事件异步并发框架com.lmax.disruptor 下载下示例代码,跑起来发现,在shenyuAdmin模块里面用到了com.lma…...

Nginx(2)
目录 1.安装Nginx1.yum安装2.编译安装3.Nginx命令 2.配置文件详解 1.安装Nginx 1.yum安装 [rootdocker ~]# yum -y install nginx通过 rpm -ql nginx 查看安装信息 2.编译安装 2.1安装所需要的依赖 yum install -y gcc gcc-c make libtool wget pcre pcre-devel zlib zlib-…...
二维数组的鞍点
描述 给定一个二维数组,找出其中的鞍点。若存在鞍点,则输出其位置;否则输出“NO”。 鞍点的定义:在一个矩阵的行和列中,某个元素是所在行的最大值,而同列中又是最小值。 输入 输入包含多行,…...
go 内置函数copy()
go内置函数copy go 内置函数copy()函数说明:代码例子1:代码例子2:代码例子3: go 内置函数copy() 函数说明: 当我们在Go语言中需要将一个切片的内容复制到另一个切片时,可以使用内置的copy()函数。copy()函…...

Spring简述
Sping是什么Spring主要模块IOCDI依赖注入的三种方式 AOP术语 Sping是什么 Spring是一个轻量级的开源框架,主要作用是为了简化开发,它以IOC(控制反转)和AOP(面向切面编程)为内核 Spring主要模块 我们一般…...

框框大学之——教育技术学
清一色劝退的教育技术学。。。。。。 https://www.kkdaxue.com/?current1&major%E6%95%99%E8%82%B2%E6%8A%80%E6%9C%AF%E5%AD%A6&pageSize10&sortFieldcreateTime&sortOrderdescend 总结: 1 杂而不经 2 摆烂劝退居多 3 适合躺平 4 考公不行 5 要多…...
Android中的Apk 包体优化
Android中的Apk 包体优化 在Android中,APK包体优化指的是减小应用程序的安装包大小,以降低用户下载和安装应用的成本,提高用户体验。APK包体优化对于应用的性能、启动速度和用户留存率都有着重要的影响。下面展开说说一些常见的APK包体优化策…...
Java基础接口详解
Java基础接口详解 文末附上下载详解pdf链接 实现java代码中接口详细分析 Java基础接口是一种定义了一组方法签名但没有提供实际实现的抽象类似的结构。它们允许类通过实现接口来声明自己拥有某些特定的行为。接口在Java中扮演了重要的角色,以下是一些关键点…...

CCL 2023 电信网络诈骗案件分类评测-第一名方案
1 任务内容 1.1 任务背景 2022年12月1日起,新出台的《反电信网络诈骗犯罪法》正式施行,表明了我国治理当前电信网络诈骗乱象的决心。诈骗案件分类问题是打击电信网路诈骗犯罪过程中的关键一环,根据不同的诈骗方式、手法等将其分类ÿ…...
go test
关于go test 报错 command-line-arguments go test 直接调用被测试go文件方法时候报错 command-line-arguments [command-line-arguments.test],这里已经明确指出了命令参数问题 PS E:\code\mqtt> go test .\client_test.go # command-line-arguments [comma…...

401 · 排序矩阵中的从小到大第k个数
链接:LintCode 炼码 - ChatGPT!更高效的学习体验! 题解: 九章算法 - 帮助更多程序员找到好工作,硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧 class Solution { public:/*** param matrix: a matrix of intege…...
进程什么时候会进入阻塞状态
等待I/O操作:当进程需要进行输入/输出操作,但是所需的数据还没有准备好或者输出设备还没有空闲时,进程会进入阻塞状态,等待I/O操作完成。 等待资源:当进程需要访问共享资源,但是该资源已经被其他进程占用时…...

炸裂,靠“吹牛”过京东一面,月薪40K
说在前面 在40岁老架构师尼恩的(50)读者社区中,经常有小伙伴,需要面试美团、京东、阿里、 百度、头条等大厂。 下面是一个5年小伙伴成功拿到通过了京东一面面试,并且最终拿到offer,月薪40K。 现在把面试…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...

Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...