/**
* 剑指 Offer 53 - II. 0~n-1中缺失的数字
* @author wsq
* @date 2020/10/08
一个长度为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
链接:https://leetcode-cn.com/problems/que-shi-de-shu-zi-lcof
*/
package search;
public class MissingNumber {
/**
* 二分查找,知道目标后使得右指针左移去寻找更小满足条件的位置
* @param nums
* @return
*/
public int missingNumber(int[] nums) {
int n = nums.length;
int pos = n;
int left = 0;
int right = n - 1;
int mid = -1;
while(left <= right){
mid = (left + right) >> 1;
if(nums[mid] != mid){
if(mid < pos){
pos = mid;
}
right = mid - 1;
}else{
left = mid + 1;
}
}
return pos;
}
public static void main(String[] args) {
int[] nums = {0,1,2,3,4,5,6,7,9};
MissingNumber mn = new MissingNumber();
int ans = mn.missingNumber(nums);
System.out.println(ans);
}
}
相关推荐
Delta-Sigma调制(DSM)技术
前言 数字信号处理和通信系统的性能很大程度上受到了模拟信号到数字信号转换接口——ADC的精度和分辨率的限制。而传统的线性脉冲编码调制(PCM)ADC受到了制造工艺的限制,无法达到很高的分辨率。但基于Delta-Sigma调制技术的ADC可以在现有工艺下实现高分辨率(大于16位),同时由于结构简单,所以易于实现。低成本高性能使得Delta-Sigma调制技术得到了广泛的应用。 Delta-Sigma型ADC的结构原理图如下图所示: 它最大的优势在于仅用1位ADC进行数据转换,同时其模拟电路部分结构简单不需要
LeetCode:53 - II 0 ~ n - 1 中缺失的数字
题目: 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 示例 1: 输入: [3,0,1] 输出: 2 示例 2: 输入: [9,6,4,2,3,5,7,0,1] 输出: 8 源码: class Solution { public int missingNumb...
YonSuite如何新增用户并分配角色角色授权图文教程
用友YonSuite产品基础教学
leetcode刷题: 0~n-1中缺失的数字
题目 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 思路 暴力法:遍历 最简单的方法就是遍历一遍数组,找到不存在的数字。 思路一是想着依次比较数组中相邻的两个数,如果nums[i]与num[i-1]的差大于1,那么缺少的数就一定是num[i]-1。同时还需要考虑第一个数是不是0以及是否缺少n的特殊情况。此时,代码的时间效率极低,88ms。 class Solution: .
低功耗蓝牙技术 > GAP和GATT介绍
GAP和GATT作为蓝牙协议栈中的关键协议,为BLE设备之间的通信提供了标准和框架。GAP主要负责设备的连接、广播和角色定义,而GATT则定义了BLE设备之间的具体通信方式,通过Services和Characteristics实现数据的传输和交换。在蓝牙技术的发展中,GAP和GATT两个协议扮演着关键的角色,为BLE(低功耗蓝牙)设备之间的通信提供了规范和框架。GATT连接是建立在GAP协议之上的,是一种独占连接,一个BLE外设同时只能连接一个中心设备。连接建立后,通信是双向的,不同于GAP的单向通信。
GNSS接收机性能测试全攻略:从实验室到真实场景
本文系统介绍了GNSS接收机从实验室到真实场景的完整性能测试流程。首先通过GNSS模拟器进行射频传导测试,评估接收机的基础性能;其次进行天线OTA测试,考察整机系统表现;最后通过精心设计的外场路测,在复杂环境中验证其实际定位精度与可靠性。文章强调,只有结合可控的实验室验证与多变的外场挑战,才能对接收机性能做出全面、真实的评价。
0~n-1缺失的数字(注意尾巴也有可能)
【代码】0~n-1缺失的数字(注意尾巴也有可能)
Beyond the Spec: Decoding Samsung‘s LPDDR6 Sub-Channel and Wide-NRZ Innovations
本文深入解析了三星LPDDR6内存的两大核心技术:Sub-Channel架构与Wide-NRZ信号技术。Sub-Channel架构通过将物理通道划分为多个独立子通道,实现了内存访问的细粒度控制,大幅提升了能效,尤其适用于AI与边缘计算场景。Wide-NRZ则通过增加并行数据线而非采用PAM4,在提升带宽的同时保持了优异的信号完整性与低功耗特性。
面试题:0~n-1中缺失的数字
一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不再该数组中,请找出这个数字。 思路:可选有n个,长度为n-1,不重复还递增,那么第一个下标与值不等的就是结果咯。显然,还是二分的节奏。 int GetMissingNumber(const int* numbers,int length) {
从内外参推导IPM变换方程及代码实现(生成AVM环视拼接图)
最近想实现AVM拼接,看了不少博客和论文,不过比较愚钝,一直没能很好理解原理,尤其是怎么在实现时把下文中Z1和Z2消除的,所以严谨的推导了一下对应的公式,如有不对,水平有限,烦请指出~IPM变换(逆透视变换),顾名思义,即将正常透视效应消除的变换,变换结果为鸟瞰图BEV(俯视图);AVM环视拼接一般是将车身前后左右的四个鱼眼相机拼接成环视图(也是俯视),其使用的单应矩阵将四个相机转到同一个俯视坐标系。
【LaTex】3.4 立体几何
本文介绍了使用LaTeX的tikz包绘制立体几何图形的两种方法。首先展示了基础立方体的绘制代码,通过定义8个顶点坐标并连接各边完成绘制。接着讲解了scope功能在3D绘图中的应用,包括标准平面(xy、xz、yz)的绘制方法,以及任意平面的定义技巧。重点说明了如何通过定义平面原点、x和y方向单位向量来创建旋转后的绘图平面,并以45°旋转的yz平面为例演示了圆的绘制。文章提供了完整的代码示例和对应的效果图示,展示了tikz在3D绘图中的灵活性和强大功能。
LeetCode–0~n-1中缺失的数字
LeetCode–0~n-1中缺失的数字 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 剑指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] 输出
构建AI招聘助手:提高人才筛选与匹配效率
人工成本高:传统招聘过程涉及大量的简历筛选和面试安排,需要耗费大量的人力和时间。匹配效率低:简历筛选过程中,人为因素可能导致信息遗漏或误判,影响匹配效果。招聘周期长:从职位发布到最终录用,传统招聘流程往往耗时较长,影响企业业务发展。机器学习(Machine Learning)是一门让计算机通过数据和经验来学习并改进性能的学科。自然语言处理(Natural Language Processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向,旨在让计算机能够理解和解释人类语言。
剑指 Offer 53 - II. 0~n-1中缺失的数字 二分查找
剑指 Offer 53 - II. 0~n-1中缺失的数字 难度简单165 一个长度为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 /** * @param {number[]} n.
android 蓝牙通讯demo
android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。
ssm框架搭建
这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载
leetcode剑指 Offer 53 - II. 0~n-1中缺失的数字(二分查找)
一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 示例 1: 输入: [0,1,3] 输出: 2 代码 class Solution { public int missingNumber(int[] nums) { int n=nums.length,l=0,r=n-1; while (l<r) { i
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
(day 43 - 二分查找 ) 剑指 Offer 53 - II. 0~n-1中缺失的数字
题目 题链:剑指 Offer 53 - II. 0~n-1中缺失的数字 题解 解法一:暴力遍历 public int missingNumber(int[] nums) { int n = nums.length; for (int i=0;i<n;i++){ if (i != nums[i]){ return i; } } return n; } 解法二:二分查找 看见有序数组的首先应该想到的是二分查找 pu
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
剑指offer 面试题53 - II. 0~n-1中缺失的数字 [简单]——二分查找
我的解题: 1.从头到尾的遍历 需要注意理解题目,一定会缺一个数字的,前面的都匹配上的话,缺的就是n-1 class Solution { public: int missingNumber(vector<int>& nums) { for(int i=0;i<nums.size();i++){ if(nums[...
剑指 offer53-II. 0~n-1中缺失的数字 -- 二分查找
看到递增排序用二分法
二分查找实例4(剑指 Offer 53 - II. 0~n-1中缺失的数字)
剑指 Offer 53 - II. 0~n-1中缺失的数字
剑指offer面试题53 - II. 0~n-1中缺失的数字(二分查找)
题目描述 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 思路 详见链接 代码 class Solution: def missingNumber(self,nums:List[int])->int: i, j = 0, len(nums)-1 while i ...
【重点】【二分查找】剑指 Offer 53 - II:0~n-1中缺失的数字
力扣,
每日一道Leetcode - 剑指 Offer 53 - II. 0~n-1中缺失的数字 【二分查找】
class Solution: def missingNumber(self, nums: List[int]) -> int: """ 排序数组: 排序数组中的搜索问题,首先想到 二分法 解决 O(logN) 分为左右两半数组 左半部分满足 nums[i] = i 右半部分满足 nums[i] 不等于 i 二分查找区间 0 1 3 缺2 .
剑指 Offer 53 - II. 0~n-1中缺失的数字,java直接遍历和二分查找法
遍历查找 class Solution { public int missingNumber(int[] nums) { for (int i = 0; i < nums.length; i++) {if (nums[i]!=i)return i; } return nums.length;//这是为了{0}专门加的 } } 二分查找法 class Solution...
leetcode--python--剑指 Offer 53
剑指 Offer 53 - II. 0~n-1中缺失的数字 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 采用的方法为二分查找,排序数组中的搜索问题,首先要想到 二分法 解决。 class Solution(object): def missingNumber(self, nums): """ :type nums: List[int]
【二分查找】0~n-1中缺失的数字
的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围 0~n-1。 所以我们需要判断一下,如果最后 nums[left] == left。相遇就结束了,但是因为我们终止循环条件的原因,它不会超过 right。的话,说明缺失元素不在数组中,此时我们要返回的就是 left + 1。 但是这里有个细节问题,就是返回值,假设此时数组只有两个元素 0。 这道题还是很好找数组的二段性的,假设有一个数组,n = 9。个数字中有且只有一个数字不在该数组中,请找出这个数字。,此时是需要我们特判一下的,
Leetcode 剑指 Offer 53 - II. 0~n-1中缺失的数字
题目描述 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/que-shi-de-shu-zi-lcof Java class Solution { public int missingNumber(int[] nums) { int i = 0, j = nums
2万+



被折叠的 条评论
为什么被折叠?



