只出现一次的数字

算法篇—只出现一次的数字 文章目录1.只出现一次的数字Ⅰ2.只出现一次的数字Ⅱ 1.只出现一次的数字Ⅰ a. b.思路 🔸数组中的每一个数都与ret进行异或。 c.注意 🔸相同的数进行异或,结果为零。 🔸任何数与零进行异或,结果为本身。 d.代码 2.只出现一次的数字Ⅱ a. b.思路 ... 阅读详情

只出现一次的数字

题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

示例 1:

输入: [2,2,1]
输出: 1

示例2:

输入: [4,1,2,1,2]
输出: 4

解法一:
1.将数组排序
2.循环数组找出只出现一次的数字
这种算法时间复杂度不为线性。

这种解法代码就不展示了。
解法二:
这是我们今天主要讲的解法。
通过位运算中的异或运算来解决。
异或:两个位相同时为0,相异时为1。
a^a=0;
0^a=a;
异或运算满足交换律,所以有:
a^b
^a=a
^a
^b=b;
代码如下:

int singleNumber(int* nums, int numsSize){
    int i,result=0;
    for(i=0;i<numsSize;i++)
    {
        result=result^nums[i];
    }
    return result;
}
找出数组中只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 如果没有时间复杂度和空间复杂度的限制,可以使用集合存储数字。遍历数组中的每个数字,如果集合中没有该数字,则将该数字加入集合,如果集合中已经有该数字,则将该数字从集合中删除,最后剩下的数字就是只出现一次的数字。 Java代码如 阅读详情

相关推荐

一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。编写一个函数找出这两个只出现一次的数字。

一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。编写一个函数找出这两个只出现一次的数字。 #include<stdio.h> #include<string.h> #include<Windows.h> #include <assert.h> void search(int a[], int num) { assert(a); assert(num > 0); int *x = (int *)malloc(sizeof(int *));

cckluv的博客 954

leetcode-java 只出现一次的数字 II

只出现一次的数字 II 题目描述: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,3,2] 输出: 3 示例 2: 输入: [0,1,0,1,0,1,99] 输出: 99 问题分析: 只出现一次的数字 I 比着上边的第一题,...

baobaohui 558

LeetCode-只出现一次的数字

一、只出现一次的数字Ⅱ 题目:给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 思路:将所有数字加起来,记录下每一位二进制加过的次数,其余每个元素都出现了三次,则每位二进制的次数都是3次/4次/0次。每一位都对3取余,剩下的二进制就是只出现一次元素的二进制了。 问题来了,怎么保存二进制呢?用一个大小为32的int类型数组保存。 代码: public int singleNumber(int[] nums) {

marin的博客 974

【位运算】只出现一次的数字系列

由于a、b两个数字不一样,所以异或的结果不为0,我们找到res的二进制表示中第一个为1的bit(这个bit表示a、b对应位置的bit异或结果位1,即a、b该位置的bit不同),以这个bit是否为1,将整个数组分为两部分,这样相同的数肯定分在两个数组中,而a、b肯定不在一个数组中。由于异或运算满足交换律,且相同的数异或为0,任何数和0异或不变,所以整个数组逐元素异或的结果res就是两个只出现一次的a、b相异或的结果res。数组中所有元素都出现2次,求出只出现一次的数字,整个数组逐元素相异或即可。

长期更新自学笔记 540

STM32实现webserver显示数据及配置参数

其实提到的将fsdata.c重命名为fsdata_custom.c,可以不重命令,将/LWIP/Target/lwipopts.h中HTTPD_USE_CUSTOM_FSDATA 定义为0,这样HTTPD_FSDATA_FILE将使用fsdata.c,避免每次生成fsdata.c需要重命令的麻烦。2、登录成功后,板卡根据板卡配置类型,返回对应的数据页面,该页面可实现数据校准、清零,以及进行到板卡参数设置页面。目前还未实现post功能以及http身份验证功能。3、板卡参数设置页面。

2685

ArduPilot移植到自定义硬件:完整指南

详解如何将ArduPilot成功移植到自定义硬件平台,涵盖环境搭建、代码配置与调试技巧。无论是初学者还是进阶开发者,都能快速掌握ArduPilot在不同硬件上的适配方法,提升开发效率。

weixin_28931449的博客 630

一个数组中有三个数字a、b、c只出现一次,其他数字都出现了两次。请找出三个只出现一次的数字。

本文参考:http://zhedahht.blog.163.com/blog/static/25411174201283084246412/ http://blog.csdn.net/wypblog/article/details/8032898 题目:一个数组里,除了三个数是唯一出现的,其余的都出现偶数个,找出这三个数中的任一个。比如数组元素为【1, 2,4,5,6,4,2】,只有1,5

龙乐的专栏 2429

vue2 - 实现移动端H5网页调用手机相册选取图片或打开摄像头相机拍照上传,如何在h5网站浏览器中打开本机相册或相机选择相片,H5调用本地相册/相机上传图片详细教程(附图片压缩功能及上传服务器示例)

vue2手机H5网页,调起安卓苹果ios手机相册和相机,H5实现调用手机摄像头相册实现图片压缩预览删除,vue项目调用摄像头和相册,H5调用手机摄像头,实时拍照上传,VUE2 H5页面如何唤起手机摄像头拍照上传,H5调起手机端的摄像头,html5调用手机摄像头,实现H5调起手机相机和相册,vue H5拍照上传,手机网站浏览器移动端调取相机或相册,实现拍照上传功能,解决苹果ios手机无法打开相册相机问题,无法唤起摄像头怎么办,调取本机系统的相册,vue h5网页调用相机拍照和相册,实现多张图片上传功能,图片压

✅ 精选推荐文章 1万+

只出现一次的数字(共四种)

文章目录前言一、难度等级:⭐二、难度等级:⭐⭐三、难度等级:⭐⭐⭐⭐四、难度等级:⭐⭐⭐ 前言   dragon迄今为止已经遇到了四道名为《只出现一次的数字》的题目了,现决定对这四道题目进行总结。假设难度最高为五星,下面我对这四道题目进行了难度评定(个人认为)。 ps:如果博友们还遇到了其他《只出现一次的数字》的题目,欢迎在评论区进行分享。 一、难度等级:⭐    给定一个整数数组numsnumsnums,除了某个元素只出现一次以外,其余元素均出现两次。找出那个只出现一次的元素。   当两个数进行异或

2021dragon的博客 2468

YOLOv11 改进 - 注意力机制 | Deformable-LKA 可变形大核注意力:自适应采样网格优化特征捕捉,提升不规则目标感知

本文介绍了可变形大核注意力(D-LKA Attention)及其在YOLOv11中的结合。D-LKA Attention是一种简化的注意力机制,采用大卷积核利用体积上下文信息,通过可变形卷积灵活调整采样网格,适应多样数据模式。它有2D和3D版本,3D版本在跨深度数据理解上表现出色,共同构成了D-LKA Net架构。我们将D-LKA Attention集成进YOLOv11,在模型的检测头部分引入deformable_LKA_Attention模块。实验表明,该方法在分割任务上表现优于现有方法,提升了模型的检测

魔改工程师的博客 1164

31、Labview如何搭建程序框架?--状态机到数据采集等常用框架

本文废话不多,直接列举几种框架搭建方式,为了尽量向大家提供干货,本文直接从简介和手把手教搭建框架两方面来讲解,本文提到五种经典框架模式,学会这五种就很够了,分别是:状态机框架(State Machine)、生产者-消费者框架(Producer-Consumer)、主-从框架(Master-Slave)、事件驱动框架(Event-Driven)、分层架构(Layered Architecturep)。这个框架是基于状态机结构的。顾名思义“状态机”就是个“切换程序状态的机器”。本质是一个。

关注我,更多技术问题欢迎私聊~ 3086

有一组数据, 只有一个数字是出现一次, 其他是两次, 请找出这个数据(以及有两个只出现一次的数字, 找出这两个数字))

这是一道非常经典的题目, 同时也是很多公司喜欢考的笔试题, 对于这道题目, 我采取了不同的解法. 解法一: 循环(比如我这样的菜鸟会比较容易想到) 分析: 创建两个变量 i, j , 分别置为数组的第一个元素array[0], 创建一个计数变量 count 用来记录每个数字出现的次数 让 j 变量遍历整个数组 如果发现有和 i 相同的元素, 就让count+1 只要count=2, j 就没有...

HHHuYYYue的博客 1940

HX711重量传感器原理图设计,已量产(压力传感器)

最近调通了一款针对家用、物联网场景的重量传感套件,核心用了 HX711 这颗经典的称重 AD 芯片,还加了用户最需要的 “一键校准” 功能 —— 之前帮朋友做家用米桶余量报警时,用户总吐槽校准步骤太繁琐,这次的方案把操作简化到只按一个键,试下来体验好了不少。正好拆解下这套硬件的设计逻辑,供做同类产品的朋友参考。

不脱发的程序猿 355

只出现一次的数字(三种情况)

在介绍只出现一次的数字之前,先介绍一下消失的数字这个题目,数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?[3,0,1]28思路:该题要求在O(n)时间内完成,使用遍历方法的时间复杂度是O(n^2),不符合题目要求。假设数组int nums[]={0,1,2,3,4,5,6,7,9},中间缺了数字8,先使用num=0与数组中所有元素做异或运算,然后将运算的结果再与[0,N]中的元素挨个做异或运算,得到的结果就是那个消失的数字。

weixin_44902783的博客 1049

手把手教你学RDMA驱动开发专栏--第7章 队列对(QP)与数据传输实现​7.3 完成队列(CQ):事件通知机制与轮询/中断模式

本章详细探讨了RDMA驱动中完成队列(CQ)的事件通知机制,重点分析了轮询与中断两种模式的实现原理及优化策略。CQ作为操作结果的报告载体,其核心功能包括结果反馈、事件通知和资源同步。轮询模式通过主动查询实现低延迟,适合高性能场景;中断模式通过被动通知节省CPU资源,适用于低频事件处理。驱动实现需考虑CQ溢出防护、多QP共享同步等关键问题,并提供事件通道机制将CQE传递给用户态。通过对比两种模式的优缺点及适用场景,揭示了RDMA系统在性能与资源间的权衡机制。

MHD0815的博客 387

矢量网络分析仪校准:原理、方法与系统适配性

矢量网络分析仪(VNA)校准是射频测量的关键环节,通过误差建模(12项误差项)和标准件测量,可将系统不确定度从±5dB降至±0.1dB以下。主流校准方法包括SOLT(适用于同轴系统)和TRL(适用于波导系统),二者在标准件、误差重点及频率上限等方面存在显著差异。随着6G与量子通信的发展,动态实时校准将成为新趋势。工程师需根据传输结构、频率范围及精度需求选择合适方法,确保测量精度。

u014344410的博客 255

数组中只出现一次的数字——js

数组中只出现一次的数字 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 思路 第一种:indexOf()和lastIndexOf(),只要两个相等,就是只出现一次的数。 第二种:使用map记录下每个数的次数,占空间。 第三种:根据异或结果中1所在的二进制位数,把数组中数分成两种不同类别,分别异或得出结果。 位运算中异或的性质:两个相同数字异或=0,一个...

qq_40608516的博客 2539

jre9下载 jdk9

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

[剑指Offer]-数组中唯一只出现一次的数字

题目描述 在一个数组中除了一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。 这题有点意思,其他数字都重复了三次,一般位运算就消不掉了。 解题思路 将所有数字的二进制表示的对应位都加起来,如果某一位能被三整除,那么只出现一次的数字在该位为0;反之,为1。 算法图解 参考代码: package offer; /** * 数组中唯一个出现一次的数字, * 除此之...

LeoByte的编程驿站 2368

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java——数组中只出现一次的数字

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。

m0_60867520的博客 968

1.一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个只出现一次的数字,编程实现。

1.一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个只出现一次的数字,编程实现。 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> int CSing(int *arr, int len) { int i...

belongHWL的博客 498

剑指offer-数字中只出现一次的数字

34.数字中只出现一次的数字 题目内容: 代码及思路: 以整型数组{2,4,3,6,3,2,5,5}为例,数组中只有数字4和6只出现一次,剩下的数字都出现2次。 #include<iostream> #include<vector> using namespace std; class Solution { public: void FindNumsAp...

larklili的博客 209

LeetCode—只出现一次的数字

只出现一次的数字(简单) 2020年5月15日 题目来源:力扣 解题 看到题目,第一个想法就是用HashMap记录元素个数,最后遍历找出只出现一次的key值。 这样做开辟额外的空间,与题意不符。 class Solution { public int singleNumber(int[] nums) { Map<Integer,Integer> map=new HashMap(); for(int a:nums){ if(map.containsKey(

学海无涯乐作舟 325

一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个只出现一次的数字。

问题描述: 一个数组中只有两个数字是出现一次, 其他所有数字都出现了两次。 找出这两个只出现一次的数字,编程实现。 问题分析: 1.先从数组遍历异或的结果开始 (1)两个相同的数异或的结果是0; (2)所有不为0的数和0异或的结果是本身。 综上两点,一个整型数组中,若只有两个数字只出现一次,其他数字都出现了两次,那么把数组中的所有遍历异或一遍的结果就是只出现一次的两个数字相异或的结果...

lexiaoyao_0000的博客 3679

求解数组中只出现一次的数字 python

题目一:在一个数组中,只有1个数字仅出现1次,其余数字出现2次,求只出现一次的那个数字。 关键点:异或运算 相同的数字异或的结果是0:2^2=0 和0异或是本身:0^2=2 代码: def one_number(alist): '''一个数组中只有1个数字出现1次,其余都出现偶数次''' a=0 for i in alist: a^=i r...

xiaolangmin的博客 2201
上一篇: 循环双链表的查找、插入与删除
下一篇: 中缀表达式求值
onlynb
博客等级 码龄5年 2粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值