题目链接
只出现一次的数字
题目描述
注意点
- 1 <= nums.length <= 30000
- -30000 <= nums[i] <= 30000
- 除了某个元素只出现一次以外,其余每个元素均出现两次
解答思路
- 最初想到使用一种数据结构将元素存储起来,但是空间复杂度为O(n),不满足题意,由于本题除了某个元素只出现一次以外,其余每个元素均出现两次,可以使用异或操作符可以很巧妙的解决本题,其与判断的元素顺序无关,最终剩下的就是只出现一次的元素
代码
class Solution {
public int singleNumber(int[] nums) {
int res = 0;
for (int num : nums) {
res ^= num;
}
return res;
}
}
关键点
- 理解异或操作符