Leetcode【只出现一次的数字】

136. 只出现一次的数字

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

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

示例 1 :

复制代码
输入:nums = [2,2,1]
输出:1

示例 2 :

复制代码
输入:nums = [4,1,2,1,2]
输出:4

示例 3 :

复制代码
输入:nums = [1]
输出:1

其实不考虑时间和空间解法还是很多的比如利用set表 如果set表内有这个数字就把这个数字从set里清除掉最后剩余的就是只存在一次的。

所以这里采用了异或运算

java 复制代码
 public int singleNumber(int[] nums){
        int single = 0;
        for (int num : nums){
            single^=num;
        }
        return single;
    }

对于这道题,可使用异或运算 ⊕。异或运算有以下三个性质。

任何数和 0 做异或运算,结果仍然是原来的数,即 a⊕0=a。

任何数和其自身做异或运算,结果是 0,即 a⊕a=0。

异或运算满足交换律和结合律,即 a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b。

相关推荐
ICscholar几秒前
推荐系统常用指标NDCG含义及公式
人工智能·深度学习·算法
闲人xyz几秒前
01|把一次用户请求做成可持续执行的回合:主循环才是 Agent 的骨架
算法·面试
超级码力6665 分钟前
【Latex魔术注解+导言区】Latex魔术注解+导言区分类介绍
算法·数学建模
闲人xyz9 分钟前
02|Tool Runtime 不是工具箱,而是行动层:从 FileRead / FileEdit 看到 Agent 工程
算法
AI专业测评14 分钟前
2026网文圈大地震:顶配AI写作神器实测,这几款让“代练”彻底失业
人工智能·算法·aigc·ai写作
智者知已应修善业16 分钟前
【数字稳压控制DAC/TLC5615驱动】2023-5-27
c++·经验分享·笔记·算法·51单片机
爱写代码的倒霉蛋17 分钟前
2021年天梯赛L1-8
数据结构·算法
阿Y加油吧19 分钟前
动态规划入门必刷:不同路径 & 最小路径和 详解
算法·动态规划
ximen502_27 分钟前
算法面试题
java·数据结构·算法
zzzsde28 分钟前
【Linux】进程信号(2)保存信号与信号处理
linux·运维·服务器·算法