LeetCode热题100--136. 只出现一次的数字--简单

题目

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

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

示例 1 :

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

输出:1

示例 2 :

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

输出:4

示例 3 :

输入:nums = [1]

输出:1

题解

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

解析

出自:画解算法:136. 只出现一次的数字

java 复制代码
class Solution {
    public int singleNumber(int[] nums) {
        // 初始化结果变量 ans 为 0。
        // 因为任何数与 0 异或都等于它本身(a ^ 0 = a),所以 0 是异或运算的"单位元"。
        int ans = 0;
        
        // 遍历数组 nums 中的每一个元素 num
        for(int num: nums) {
            // 将当前数字 num 与 ans 进行异或运算,并将结果存回 ans
            // 利用异或的性质:
            //   1. 相同的数异或为 0:a ^ a = 0
            //   2. 异或满足交换律和结合律
            //   3. 0 ^ a = a
            // 因此,所有出现两次的数字会相互抵消(变成 0),最终只剩下那个只出现一次的数字
            ans ^= num;
        }
        
        // 循环结束后,ans 中保存的就是数组中唯一只出现一次的数字
        return ans;
    }
}
相关推荐
多恩Stone1 天前
【3D-AICG 系列-14】Trellis 2 的 Texturing Pipeline 保留单层薄壳,而 Textured GLB 会变成双层
人工智能·python·算法·3d·aigc
Solitary-walk1 天前
前缀和思想
数据结构·c++·算法
智驱力人工智能1 天前
机场鸟类活动智能监测 守护航空安全的精准工程实践 飞鸟检测 机场鸟击预防AI预警系统方案 机场停机坪鸟类干扰实时监测机场航站楼鸟击预警
人工智能·opencv·算法·安全·yolo·目标检测·边缘计算
量子物理学1 天前
三、C#高级进阶语法——特性(Attribute)
java·算法·c#
忍者必须死1 天前
JDK1.7的HashMap的环形链表
java·数据结构·算法·链表
仟濹1 天前
【算法打卡day10(2026-02-24 周二)动态规划DP基础理论】
算法·动态规划
xiaoccii1 天前
C++(入门版)
java·c++·算法
ADDDDDD_Trouvaille1 天前
2026.2.23——OJ101-103题
c++·算法
月挽清风1 天前
代码随想录第34天:动态规划
算法·动态规划
HCl__盐酸1 天前
题解:Kitamasa 算法板子
算法