「LeetCode」 只出现一次的数字(JAVA实现)
只出现一次的数字
问题描述
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
实现思路
通过异或实现
主要运用异或运算符的两个性质
- 满足交换率
- 对于任何数x,都有xx=0,x0=x
实现代码
class Solution {
public int singleNumber(int[] nums) {
int num = 0;
for(int n : nums){
num = num ^ n;
}
return num;
}
}