0%

Leetcode 每日一题01 Single Number

最近Leetcode举办了一个为期一个月的活动,每天会推出一道题目。最近这段时间正好有空,所以打算跟着参加一下,顺便写一下题解。使用的语言为C++。

题意

题目链接:Single Number

给一个非空的数组,其中有1个元素出现了1次,其他的都出现2次。时间要求为线性,不允许使用额外内存,求出现1次的元素。

思路

题目保证数组非空,所以不需要特殊处理。

两个相同的数异或等于0,因此我们可以将数组所有元素异或起来,最后得到的值即为出现1次的元素。

代码

1
2
3
4
5
6
7
8
9
class Solution {
public:
int singleNumber(vector<int>& nums) {
for (int i = 1; i < nums.size(); i++) {
nums[0] ^= nums[i];
}
return nums[0];
}
};