力扣3158.求出出现两次数字的XOR值 python

给你一个数组 nums ,数组中的数字 要么 出现一次,要么 出现两次。

请你返回数组中所有出现两次数字的按位XOR 值,如果没有数字出现过两次,返回 0 。

示例 1:

**输入:**nums = [1,2,1,3]

**输出:**1

解释:

nums 中唯一出现过两次的数字是 1 。

示例 2:

**输入:**nums = [1,2,3]

**输出:**0

解释:

nums 中没有数字出现两次。

示例 3:

**输入:**nums = [1,2,2,1]

**输出:**3

解释:

数字 1 和 2 出现过两次。1 XOR 2 == 3

python 复制代码
from typing import List

class Solution:
    def duplicateNumbersXOR(self, nums: List[int]) -> int:
        time = 0  # 用于记录数字是否已经见过
        ans = 0   # 用于记录重复出现的数字
        
        for a in nums:
            # 如果当前数字的状态已经被记录过,则说明这是一个重复数字
            if time >> a & 1:    #返回1就是属于,返回0不属于
                ans ^= a            #因为ans本身为零!
            else:
                # 将当前数字记录到 time 中
                time |= 1 << a
                
        return ans
相关推荐
YouQian77232 分钟前
2025春训第十九场
算法
CodeJourney.32 分钟前
基于MATLAB的生物量数据拟合模型研究
人工智能·爬虫·算法·matlab·信息可视化
Epiphany.55635 分钟前
素数筛(欧拉筛算法)
c++·算法·图论
爱吃涮毛肚的肥肥(暂时吃不了版)1 小时前
项目班——0510——JSON网络封装
c++·算法·json
liang_20261 小时前
【HT周赛】T3.二维平面 题解(分块:矩形chkmax,求矩形和)
数据结构·笔记·学习·算法·平面·总结
緈福的街口1 小时前
【leetcode】2900. 最长相邻不相等子序列 I
算法·leetcode·职场和发展
易只轻松熊1 小时前
C++(20): 文件输入输出库 —— <fstream>
开发语言·c++·算法
远瞻。1 小时前
【论文阅读】人脸修复(face restoration ) 不同先验代表算法整理
论文阅读·算法
进击的小白菜2 小时前
LeetCode 153. 寻找旋转排序数组中的最小值:二分查找法详解及高频疑问解析
数据结构·算法·leetcode
dog2502 小时前
BBR 的 buffer 动力学观感
人工智能·算法