在一个数组中所有数都是成对出现的,除了一个数,找出这个数。
普通方法,每个数都比较一遍,时间复杂度太高。
简单方法,对所有数异或,最后的结果就是那个单独的数。
class Solution {
public:
int singleNumber(vector<int>& nums) {
int a;
int t;
a=nums.back();
nums.pop_back();
while(!nums.empty())
{
t=nums.back();
nums.pop_back();
a=t^a;
}
return a;
}
};
本文介绍了一种在数组中找到唯一不重复数的高效算法,通过使用异或运算,实现时间复杂度为O(n)且空间复杂度为O(1)的解决方案。
281

被折叠的 条评论
为什么被折叠?



