文章作者:Tyan
博客:noahsnail.com | 优快云 | 简书
1. Description

2. Solution
- O(N)
class Solution {
public:
vector<int> singleNumber(vector<int>& nums) {
vector<int> result;
int a = 0;
int b = 0;
for(int i = 0; i < nums.size(); i++) {
a ^= nums[i];
}
int index = a & ~(a - 1);
for(int i = 0; i < nums.size(); i++) {
if(index & nums[i]) {
b ^= nums[i];
}
}
a = a ^ b;
result.push_back(a);
result.push_back(b);
return result;
}
};

本文介绍了LeetCode中单数III问题的一种高效解决方案。通过使用XOR运算来找到数组中只出现一次的两个数,时间复杂度为O(N)。文章提供了一个C++实现示例,并附带了详细的代码解释。
708

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



