https://leetcode.com/problems/single-number/
所有数取异或,最终结果就是那个单一的数,这是因为相同的两个数异或的结果为0。算法的时间复杂度为O(n),空间复杂度为O(1)。
c++代码如下:
class Solution {
public:
int singleNumber(vector<int>& nums) {
if (nums.empty())
return 0;
int res = 0;
for (auto i : nums)
res ^= i;
return res;
}
};
python代码如下:
class Solution:
def singleNumber(self, nums):
if length(nums) == 0:
return 0
res = 0
for i in nums:
res = res ^ i
return res