ledcode----丢失的数字

news2025/7/22 23:36:00

目录

题目截图:

 题目接口:

第一种解法:

思路:

第二种解法:差值法

思路:

第三种解法:位运算异或法

关于异或操作符的预备知识:

思路:

例子:输入数组[0,1,3]。根据题目要求消失的数字就是2,n=3。

结语:

 


题目截图:

 题目接口:

int missingNumber(int* nums, int numsSize){

}

第一种解法:

思路:

第一步,定义一个长度为10000的数组(题目中的数组长度最大为10000)并将数组中的数据初始化为0。

第二步,将nums中的数据作为下标对arr进行赋值为1的操作。

第三步,对arr进行遍历,当arr[i]==0时成立时返回下标i,这里的i就是缺失的数字。


int missingNumber(int* nums, int numsSize) {
   
    int arr[10000] = { 0 };
    int i = 0;
    for (i = 0;i < numsSize;i++) {
        arr[nums[i]] = 1;
    }
    for (i = 0;i < numsSize + 1;i++) {
        if (arr[i] == 0)
            break;
    }
    return i;
}

第二种解法:差值法

思路:

第一步,对0~n的数字进行加和

第二步,对数组中的元素进行加和

第三步,返回两个数的差值,这个差值就是丢失的数字。

int missingNumber(int* nums, int numsSize) {
    int sum = 0;
    int arrSum = 0;
    for (int i = 0;i <= numsSize;i++) {
        sum += i;
    }
    for (int i = 0;i < numsSize;i++) {
        arrSum += nums[i];
    }
    return sum - arrSum;
}

第三种解法:位运算异或法

关于异或操作符的预备知识:

1.0^(任何数)=任何数   0^1=1;

2.两个相等的数字异或自己=0  1^1=0;

3.异或操作支持交换律。

思路:

第一步,先定义一个x=0

第二步,使用x来异或数组中每一个元素,并将x赋值为x^nums[i].

第三步,用第一个循环中得到的数来异或0~n的数,并对x重新赋值

第四步,两循环结束以后得到的x的值就是丢失的数字。

例子:输入数组[0,1,3]。根据题目要求消失的数字就是2,n=3。

执行程序后的操作:x=0^0^1^3^0^1^2^3=0^0^0^1^1^2^3^3=0^2=2

int missingNumber(int* nums, int numsSize) {
    int x = 0;
    int i = 0;
    for (i = 0;i < numsSize;i++) {
        x = x ^ nums[i];
    }
    for (i = 0;i <= numsSize;i++) {
        x = x ^ i;
    }
    return x;
}

结语:

小牛儿今天的分享就到这里了,如果有错误的话请指正。如果对你的学习有帮助的话,请给小牛儿来个三连吧。

 

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

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

相关文章

海思3531a pjsip交叉编译

学习文档&#xff1a; PJSUA2 Documentation — PJSUA2 Documentation 1.0-alpha documentationhttps://www.pjsip.org/docs/book-latest/html/index.html ./configure --prefix/opensource/pjproject-2.12/build3531a \ --host/opt/hisi-linux/x86-arm/arm-hisi…

MySQL全解[集群篇]

目录日志错误日志二进制日志格式查看删除查询日志慢查询日志主从复制原理docker搭建分库分表拆分策略垂直拆分垂直分库垂直分表水平拆分水平分库水平分表实现技术MyCat2mysql2对比mycat1.xdocker运行mycat2日志 错误日志 错误日志是 MySQL 中最重要的日志之一&#xff0c;它记…

NYUv2生成边界GT(2)

由NYUv2生成边界GT(1)可知&#xff0c;我们每张GT图片都生成一个对应的.bin文件。存放在D:\datasets\data_proc\train\edge_labels_40文件夹下&#xff0c;下一步我们需要生成.png文件&#xff0c;即需要使用convert_bin_to_png.py。 # -*- coding: utf-8 -*- import numpy as…

【Azure 架构师学习笔记】-Azure Storage Account(1)- Queue Storage

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Storage Account】系列。 接上文 【Azure 架构师学习笔记】-Azure Storage Account&#xff08;1&#xff09;-类型简介 前言 Azure Storage Queues 是一个专门用来处理基于云环境队列的Azure 服务。每个队列都维护着…

Netty之ChannelHandler初解

目录 目标 Netty版本 Netty官方API 实战 Netty服务器 入栈ChannelHandler读入数据顺序案例 出栈ChannelHandler写出数据顺序案例 ChannelHandlerContext和NioSocketChannel写入数据时有什么不同 Pipeline添加多个ChannelHandler有什么意义 目标 掌握ChannelHandler基…

海康工业相机使用教程

工业相机使用一、硬件连接1、准备材料2、相机供电&#xff08;1&#xff09;区分电源适配器正负极&#xff08;2&#xff09;连接相机电源线缆&#xff08;3&#xff09;连接完成后&#xff0c;相机蓝色灯常亮则成功3、软件连接&#xff08;1&#xff09;MVS客户端下载地址&…

你真的会在阳光下拍照片么?

你好&#xff0c;我是小麥。 上节课我们讲了如何通过影子判断光的质量&#xff0c;也就是光的软硬&#xff0c;这节课我们来接着说一说光的方向和环境光的实际运用。 虽然在现实生活里&#xff0c;我们可能没有从软硬的角度观察过光线&#xff0c;但我相信你在拍照片的时候一…

第九章:Java集合

第九章&#xff1a;Java集合 9.1&#xff1a;Java集合框架概述 数组、集合都是对多个数据进行存储(内存层面&#xff0c;不涉及持久化)操作的结构&#xff0c;简称Java容器。 数组存储多个数据方面的特点 一旦初始化以后&#xff0c;其长度就确定了。数组一旦定义好&#xff…

计算机操作系统:实验三存储管理程序设计

一、目的和要求 目的 存储管理的主要功能之一是合理地分配主存空间。请求页式管理是一种常用的虚拟存储管理技术。 本实验的目的是通过请求页式存储管理中页面置换算法的模拟设计&#xff0c;来了解虚拟存储技术的特点&#xff0c;掌握请求页式存储管理的页面置换算法。 要求…

数字工厂管理系统的应用案例

数字工厂管理系统是制造企业应用数字化工厂技术实现研发设计数字化、生产准备数字化、 生产制造数字化、运营管理数字化和营销服务数字化的重要手段&#xff0c;即通过应用数字相关技术提升产品全生命周期数字化水平&#xff0c;从而提升企业经营的可靠性、安全性和经济性。 任…

C++回顾(十)—— 多态

10.1 问题引出 10.1.1 如果子类定义了与父类中原型相同的函数会发生什么&#xff1f; 函数重写 在子类中定义与父类中原型相同的函数&#xff0c;函数重写只发生在父类与子类之间 重载与重写区别&#xff1a; &#xff08;1&#xff09;重载&#xff1a;同一个作用域&#xf…

A、力扣刷题——数组

提示&#xff1a;这是力扣上数组类题目里的简单题&#xff0c;按顺序做下来的23道题。 第一题&#xff1a; 关键词&#xff1a;原地修改&#xff0c;有序数组 我的答案&#xff1a; &#xff08;for循环&#xff09; &#xff08;1&#xff09;有序数组 class Solution{pu…

平安大视野前瞻2023投资策略:资产格局“危中有机”,关注科技、绿色、安全领域

3月3日&#xff0c;平安私人银行全新云端沙龙《平安大视野》第一站在杭州举办&#xff0c;活动聚焦2023年宏观经济展望&#xff0c;邀请中国首席经济学家论坛理事、鹏扬基金首席经济学家陈洪斌&#xff0c;平安私人银行首席策略分析师彭伟伟就国内外宏观经济变化和资产配置策略…

干货系列:高通量测序后的下游实验验证方法——m6A RNA甲基化篇|易基因

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。此前&#xff0c;我们分享了m6A RNA甲基化研究的数据挖掘思路&#xff08;点击查看详情&#xff09;&#xff0c;进而筛选出m6A修饰目标基因。做完MeRIP-seq测序后&#xff0c;如果需要对分…

【JavaWeb】Servlet详解

文章目录1. 前置知识2.servlet生命周期2.1 默认情况下&#xff0c;服务器启动时&#xff0c;servlet对象并没有被创建2.2 用户执行一次请求2.3用户执行第二次请求2.4 3,4,5,6....次请求2.5 关闭服务器3.servlet方法解析4.适配器模式改造servlet4.1不使用servlet模式4.2使用适配…

【微服务】(十五)—— Seata 的部署和集成

文章目录1. 部署Seata的tc-server1.1 下载Seata1.2 解压1.3 修改配置1.4 在nacos添加配置1.5 创建数据库表1.6 启动TC服务2. 微服务集成seata2.1 引入依赖2.2 修改配置文件3. TC服务的高可用和异地容灾3.1 模拟异地容灾的TC集群3.2 将事务组映射配置到nacos3.3 微服务读取nacos…

软测入门(八)Selenium项目实战

自动化项目实战 项目计划设计 测试计划测试范围设定目标规划活动 实际项目中&#xff0c;需要根据项目的实际情况创建自己的项目计划&#xff0c;没有固定的格式和内容要求&#xff1a; 项目简介自动化实现网上购票项目启动前置条件1.购票网站工作正常 2.自动化测试环境准备…

JAVA的16 个实用代码优化小技巧

一、类成员与方法的可见性最小化 举例&#xff1a;如果是一个private的方法&#xff0c;想删除就删除。 如果一个public的service方法&#xff0c;或者一个public的成员变量&#xff0c;删除一下&#xff0c;不得思考很多。 二、使用位移操作替代乘除法 计算机是使用二进制…

垒骰子(爆搜/DP)

动态规划方格取数垒骰子方格取数 题目描述 设有 NNN \times NNN 的方格图 (N≤9)(N \le 9)(N≤9)&#xff0c;我们将其中的某些方格中填入正整数&#xff0c;而其他的方格中则放入数字 000。如下图所示&#xff08;见样例&#xff09;: A0 0 0 0 0 0 0 00 0 13 0 …

ChatGPT助力校招----面试问题分享(一)

1 ChatGPT每日一题&#xff1a;期望薪资是多少 问题&#xff1a;面试官问期望薪资是多少&#xff0c;如何回答 ChatGPT&#xff1a;当面试官问及期望薪资时&#xff0c;以下是一些建议的回答方法&#xff1a; 1、调查市场行情&#xff1a;在回答之前&#xff0c;可以先调查一…