136_只出现一次的数字[EASY]
约 210 字小于 1 分钟
2026-03-23
给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。
示例 1 :
输入:nums = [2,2,1]
输出:1示例 2 :
输入:nums = [4,1,2,1,2]
输出:4示例 3 :
输入:nums = [1]
输出:1解题思路
异或运算
- 两个相同的数异或,结果是0
- 两个不同的数异或,结果是1
异或遵循结合律 (a^b)^c = a^(b^c)
Java实现
public int singleNumber(int[] nums) {
int result = nums[0];
for (int i = 1; i < nums.length; i++){
result = nums[i] ^ result;
}
return result;
}