首页 > 其他分享 >136. 只出现一次的数字

136. 只出现一次的数字

时间:2022-12-25 15:56:22浏览次数:42  
标签:一次 return 数字 nums int 异或 set1 136

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

你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

示例 1 :

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

点击查看代码1,异或
class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        a = 0
        for i in nums:
            a = a ^ i
        return a
点击查看代码2,遍历集合
set1 = set()
        for i in nums:
            if i in set1:
                set1.remove(i)
            else:
                set1.add(i)
        for i in set1:
            return i

总结异或:

  • 交换律:a ^ b ^ c <=> a ^ c ^ b

  • 任何数于0异或为任何数 0 ^ n => n

  • 相同的数异或为0: n ^ n => 0
    所以var a = [2,3,2,4,4] 2 ^ 3 ^ 2 ^ 4 ^ 4等价于 2 ^ 2 ^ 4 ^ 4 ^ 3 => 0 ^ 0 ^3 => 3

标签:一次,return,数字,nums,int,异或,set1,136
From: https://www.cnblogs.com/xinxuann/p/17004116.html

相关文章

  • 如何使用JavaScript对数字数组进行排序?
    英文| https://www.geeksforgeeks.org/how-to-sort-numeric-array-using-javascript/翻译|web前端开发(ID:web_qdkf)所述的JavaScript的Array.sort()方法被用来就地数组元......
  • 448. 找到所有数组中消失的数字
    找到所有数组中消失的数字给你一个含n个整数的数组nums,其中nums[i]在区间[1,n]内。请你找出所有在[1,n]范围内但没有出现在nums中的数字,并以数组的形式返......
  • 记一次 .NET 某安全生产信息系统 CPU爆高分析
    一:背景1.讲故事今天是......
  • 每日算法之和为S的两个数字
    JZ57和为S的两个数字题目输入一个升序数组array和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,返回任意一组即可,如果无法找出这样的数字,......
  • 猜数字
    #define_CRT_SECURE_NO_WARNINGS1usingnamespacestd;#include<iostream>#include<ctime>#include<cmath>//1、猜数字//intmain()//{//srand((unsignedint)time(NUL......
  • 数字化室分的头端有源和传输使用网线/光纤
    ​​数字化​​室分易于演进数字化室分的头端有源,传输使用网线/光纤,从容量演进、可视管理、易部署等方面讲,其架构更容易支持5G演进。当前新建4G场景建议预埋Cat6A网线或者......
  • 什么是数字量模拟量
    1.A/D转换器将模拟信号转换成数字信号的电路,称为模数转换器(简称a/d转换器),A/D转换的作用是将时间连续、幅值也连续的模拟量转换为时间离散、幅值也离散的数字信号,因此,A/D转换......
  • 一次曲折的网站搭建经历
    一次曲折的网站搭建经历From2022-12-15to2022-12-24引言快到圣诞节了,准备给送朋友一个圣诞节主题的网站(但搞着搞着已经偏题了...)网站设计网站设计周期从12月15号一......
  • 记录一次win10修复|System Failed to Initialize In Windows|CBSLog
    起因:系统初始化失败,尝试使用如下命令行修复sfc/SCANNOW生成CBS日志,可以搜索关键字“Couldnot”定位到问题行关闭联想锁屏后解决cmd问题最终退出杀软后成功安装参......
  • leetcode-12整数转罗马数字
    12.整数转罗马数字罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符数值I1V5X10L50C100D......