LeetCode-268:Missing Number(寻找缺失数字)

Allegro File菜单实战指南:从导入网表到导出BOM的完整流程 PCB设计离不开对EDA软件菜单体系的深入理解。在Cadence Allegro中,File菜单是数据流转的中枢,它不仅是新建、打开、保存的基础入口,更是连接原理图与版图、设计与制造的关键桥梁。工程师常遇到的“导入网表报错”“导出BOM为空”“板框不闭合”等高频问题,大多源于对File菜单中Import与Export功能的理解不到位。从基础概念出发,先厘清Import(网表、DXF、IPC)与Export(BOM、ODB++、DXF)的工作原理,再结合版本兼容、封装库路径、单位设置等工程细节,即可构建完整的 阅读详情

Question

Given an array containing n distinct numbers taken from 0, 1, 2, …, n, find the one that is missing from the array.

For example:

Given nums = [0, 1, 3] return 2.

Note:

Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?

Idea

给定一个含有n个不重复数字的数组,n个数字来自0, 1, 2, …, n, 找出其中丢失的数字。(这里并没有说明是按序排列的数组)

  1. Xor异或:由于b^b=0(这里是进行位异或),所以a^b^b=a^0=a.

    • 这里取a=0,依次与‘i’,‘nums[i]’进行异或运算.
    • 如:a = a^0^0^1^1…^k^…n^n = a^k = 0^k = k.
  2. Sum求和:由于题目告诉只缺少一个数字,故用0~n的和减去数组的和得到的即为要求的数字.

    • 0~n的和:n(n+1)/2.
  3. BinarySearch:将数组进行排序后,可以利用二分查找的方法来找到缺少的数字,不过对算法进行略微的改动.

Code

Xor异或—Java
public class Solution {
    public int missingNumber(int[] nums) {
        int a = 0, i = 0;
        for (i=0; i<nums.length;i++){
            a = a^i^nums[i];
        }
        return a^i;
    }
}
* 算法中i从0~n-1(因为数组的大小为n),所以在循环结束后,i<=nums[i];
* 如果缺少的数字k<n,则最后a^i以消去最后的nums[n-1];
* 如果缺少的数字k=n,则最后a^i=i,刚好为缺少的数字n;
* 所以最后返回的值为a^i,这里注意i要设置为for循环外的变量。
* 时间复杂度低,Runtime:1ms.
Sum求和—Java
public class Solution {
    public int missingNumber(int[] nums) {
        int n = nums.length;
        int sum = (n+0)*(n+1)/2;
        for (int i=0; i<n; i++){
            sum -= nums[i];
        }
        return sum;
    }
}
  • 算法的时间复杂度为O(n),空间复杂度为O(1)
  • Runtime:1ms.
BinarySearch—Java
public class Solution {
    public int missingNumber(int[] nums) {
        Arrays.sort(nums);
        int low = 0;
        int high = nums.length;
        while (low < high){
            int mid = (low+high)/2;
            if (nums[mid] > mid) high = mid;
            else low = mid+1;
        }
        return low;
    }
}
  • 算法这里有部分的变动,需要注意:
    • high = nums.length,而不是nums.length-1,这里相当于high = n,因为搜索范围为0~n;
    • 循环条件为low<high,而不是low<=high;
  • 算法的时间复杂度较前两个要高
[系统安全] 十六.PE文件逆向基础知识(PE解析和PE编辑工具) 您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系统,更加深入,也是作者的慢慢成长史。换专业确实挺难的,逆向分析也是块硬骨头,但我也试试,看看自己未来四年究竟能将它学到什么程度,漫漫长征路,偏向虎山行。享受过程,一起加油~ 作者前面介绍了三个漏洞,包括Chrome浏览器保留密码渗透解析、通过Chrome浏 阅读详情

相关推荐

利用Arcgis发布wmts服务

使用发布 GIS 服务连接连接到 ArcGIS Server 站点后,可以将各种 GIS 资源(如地图文档、数据库以及服务定义)发布到服务器上。此外,还可以添加、删除、启动和停止服务。使用管理 GIS 服务器连接到 ArcGIS Server 站点后,可以编辑各种服务器属性,例如配置存储位置、集群配置、参与到该站点中的计算机列表以及管理站点的数据存储。通过使用 GIS 服务连接建立连接后,可以查看并使用发布到该站点的服务。但不能编辑服务器或服务属性、发布服务,也不能添加、删除、启动、停止或暂停服务。

ghgfsasxda的博客 2395

LeetCode - 缺失数字的数组查找总结(位置交换法)

缺失的第一个正数 给定一个未排序的整数数组,找出其中没有出现的最小的正整数。说明: 你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。 示例 1: 输入: [1,2,0], 输出: 3 示例 2: 输入: [3,4,-1,1], 输出: 2 示例 3: 输入: [7,8,9,11,12], 输出: 1 分析: 我们使用一种 “座位交换法" 来达到in-place 的目的:从第一个位置开...

much efforts, much luck 1516

STM32嵌入式开发实战:如何用miniLZO压缩算法节省70%存储空间(附完整工程)

本文详细介绍了如何在STM32嵌入式开发中使用miniLZO无损压缩算法实现高达70%的存储空间节省。通过对比分析不同轻量级算法,重点讲解miniLZO的内存优化配置、分块压缩策略和完整工程实现,帮助开发者有效解决嵌入式系统中的存储瓶颈问题。

ss78901的博客 881

如何在1到100的整数数组中找到缺失的数字

有关编程面试的最常见问题之一就是:编写一个程序,用Java或任何其他语言查找数组中缺少的数字; 这种不仅在小型初创企业中被问到,而且还在谷歌,亚马逊,脸谱,微软等一些最大的技术公司中提出,主要是当他们访问知名大学的校园招聘毕业生时。 这个问题的最简单版本是:在100个整数的区域中找到缺失的元素,其中包含1到100之间的数字。这可以通过使用n(n + 1)/ 2计算序列的总和来轻松解决。这也是最快...

淡定_蜗牛的博客 1万+

AD9361 RSSI配置实战:从寄存器到精准功率测量的避坑指南

本文详细解析了AD9361芯片的RSSI配置实战,从寄存器设置到精准功率测量的全流程避坑指南。通过优化模式选择、测量持续时间及高级参数配置,实现高精度信号强度测量,并分享实际项目中的校准流程与性能优化技巧,帮助工程师提升射频接收链路的测量精度。

weixin_38166557的博客 447

激光雷达与相机融合(四)----基于激光雷达与相机的碰撞检测

在这一部分,基于前面的各个部分内容,将利用激光雷达和相机实现目标的检测分类及单目标跟踪,并对车辆前方的车辆目标计算相应的碰撞时间TTC。计算方法分别利用相机和雷达实现。 1.系统的总体架构: 2.TTC计算 简单介绍一下通过激光雷达和相机计算碰撞时间的原理: 利用激光雷达点计算碰撞时间:首先根据检测框聚类出前车目标的点,并过滤掉这些点中的离群点,然后找出这些点中相对于本车最近的点,基于前后两帧以及数据采集频率就可以求解出相对速度,然后用当前帧的距离除以速度得出当前的TTC。但该方法对最近点的选取稳定性不是

张飞飞的博客 3987

查找缺失数字

查找缺失数字

weixin_42386438的博客 796

U-Net图像分割实战:从论文解析到PyTorch代码实现

本文深入解析了U-Net图像分割模型的经典架构与核心思想,并提供了从零开始的PyTorch代码实现教程。通过详细拆解编码器-解码器结构、跳跃连接等关键组件,手把手指导读者构建完整的U-Net网络,涵盖数据准备、模型训练、推理部署全流程,是掌握图像分割实战技能的实用指南。

fire9的博客 343

查找缺失的数字

题目描述: 从0开始的一组连续的整数,但缺少其中的一个数字,请输出这一数字。 输入:[0, 4, 3, 1, 5] 输出:2 解题思路: 遍历计算数组元素的和,得sum; 将下标从0开始累加,得sum1; 缺失的数字为sum1+n-sum; 代码: class Solution: def Find_lost(self, nums): sum, sum1 = 0, 0 n = len(nums) for i in range(len.

zhf的博客 1372

电磁场仿真:电磁场基础理论_(13).微波技术基础

微波是指频率在300 MHz到300 GHz之间的电磁波。这一频率范围对应的波长为1米到1毫米。

2401_87715305的博客 1319

2026.3.10:最新claude code完美解决方案,跳过登录界面,使用国内deepseek-v4-pro进行计费

本文介绍了一种绕过Claude登录界面直接使用国内DeepSeek-V4-Pro服务的解决方案。通过npm全局安装@anthropic-ai/claude-code包,并配置5个关键环境变量:API认证令牌、基础URL(指向DeepSeek服务)、指定模型为deepseek-v4-pro、禁用非必要流量等。文中提供了4张配图辅助说明配置过程,但未展示具体内容。该方案可实现直接计费使用,无需通过官方登录流程。

拥抱具身智能,昇腾Ascend C 6518

ValueError: y contains new labels: [326]

sklearn的label编码的时候,遇到新值,没有fit过的问题,如上新值326,打印编码规则如下: lab_dict = dict(zip(lab.classes_, lab.transform(lab.classes_))) print(lab.classes_) print(lab_dict) [ 0 43 51 630 631 635 765 781 819 843] {0: 0, 43: 1, 51: 2, 630: 3, 631: 4, 635: 5, 765: 6, 781: 7,.

WGS. 1334

AD18软件——捕捉栅格、电气栅格、可见栅格的意义及设置

本文介绍了PCB设计中的三种栅格功能:可视栅格用于辅助定位(快捷键Shift+Ctrl+G),捕捉栅格控制光标移动间距(快捷键G),电气栅格实现元件自动吸附(快捷键Shift+E)。同时提供了在Altium Designer中快速查找相同网络标号的两种实用方法:Alt+鼠标单击或双击网络。这些功能可显著提高PCB设计效率和准确性。

qq_37999850的博客 646

【leetcode】268. Missing Number

problem 268.Missing Number solution1:等差数列求和公式 根据题意,(0, 1, 2,...,n),共有(n+1)个数,丢失了一个数之后,剩余的数组成的数组,求解丢失的数据。 等差数列求和减去数组累加和得到的结果即为所求数据。 class Solution { public: int missingNumber(vector<in...

weixin_30390075的博客 91

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【leetcode】268. 缺失数字( Missing Number )

题目描述 【leetcode】268. 缺失数字( Missing Number ) 给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。 示例 1: 输入: [3,0,1] 输出: 2 示例 2: 输入: [9,6,4,2,3,5,7,0,1] 输出: 8 说明: 你的算法应具有线性时间复杂度。你能否仅使用常数级的额外空间来实现? 第...

Liber-coder的博客 1277

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Leetcode 268. 缺失数字(Missing Number)

Leetcode 268. 缺失数字 1 题目描述(Leetcode题目链接)   给定一个包含 0,1,2,⋯ ,n0, 1, 2, \cdots, n0,1,2,⋯,n 中 n 个数的序列,找出 0⋯n0\cdots n0⋯n 中没有出现在序列中的那个数。 输入: [3,0,1] 输出: 2 输入: [9,6,4,2,3,5,7,0,1] 输出: 8 说明:你的算法应具有线性时间复杂度。你...

qq_39378221的博客 259

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

LeetCode 268. Missing Number(缺失数字)

原题网址:https://leetcode.com/problems/missing-number/ Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missing from the array. For example, Given n

James Pan 1488

LeetCode:268. Missing Number

LeetCoed:268. Missing NumberGiven an array containing n distinct numbers taken from 0, 1, 2, …, n, find the one that is missing from the array.For example, Given nums = [0, 1, 3] return 2.Note: Your

zems 518

力扣Leetcode 268 | 缺失的数字(Missing Number)

官方解法 视频: 力扣Leetcode 268 | 缺失的数字 Missing Number

maoersong的专栏 363

Leetcode: 268.Missing Number 缺失数字

给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。 输入: [3,0,1] 输出: 2 输入: [9,6,4,2,3,5,7,0,1] 输出: 8 说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现? 方法一:公式法 将0~n的和与数组的n个数字的和相减,得到的值即为缺失的数字 public: int ...

Coding 385

LeetCode 268: Missing Number

LeetCode 268: Missing Number 题目描述 给定一个含有n个元素的数组,数组中所有的元素在 0-n 之间,但是有一个数是缺失的,要求找到这个缺失的数。 解题思路 可采用位异或的思路,将数组中所有的元素取位异或,然后与所有的下标取位异或,最后再位异或n即可得最终的结果。 AC代码 class Solution { public: int missingN...

HakunaMatata的博客 163

leetcode 268: Missing Number

Missing Number Total Accepted: 10033 Total Submissions: 31720 Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missing from the array. For e

西施豆腐渣 2957

LeetCode 268. 丢失的数字 【Missing Number】

       互联网行业的小白,写博客的目的是为了记录自己的学习过程、对自己学习中所犯的错误做一个总结。由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教! python题解问题描述题解 问题描述 题目传送门:丢失的数字 给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。 进阶: 你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题? .

鸪鹑菌的个人博客 545

光伏逆变器网络监控模块GJ02PL:从数据采集到运维实战

光伏逆变器监控是分布式电站运维的核心环节,通过Modbus协议采集逆变器运行数据,结合网络监控模块实现云端或本地平台的数据传输与告警。GJ02PL作为专用数据采集终端,解决了多品牌逆变器统一接入的难题,支持RS485、4G/以太网通信,并具备本地缓存与断点续传能力。在光伏逆变器simulink仿真辅助下,可验证数据合理性,提升故障排查效率。该方案广泛应用于工商业屋顶及偏远电站,实现从被动抢修到预防性维护的转变,有效降低发电损失。

weixin_34268579的博客 464

LeetCode刷题:268. Missing Number

LeetCode刷题:268. Missing Number 原题链接:https://leetcode.com/problems/missing-number/ Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missing from the array...

梅森上校的博客 业精于勤荒于嬉,形成于思毁于随。 274

LeetCode-268. Missing Number [C++][Java]

Given an arraynumscontainingndistinct numbers in the range[0, n], returnthe only number in the range that is missing from the array.

贫道绝缘子的博客 726
上一篇: LeetCode-119:Pascal's Triangle II (返回杨辉三角指定行)
下一篇: LeetCode-121:Best Time to Buy and Sell Stock (一次股票交易最大利润)
大树先生的博客
博客等级 码龄9年 2692粉丝 200原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值