位操作系列2-leetcode136(c++/python)
题目

思路
这道题可以使用异或操作!
啥叫异或?(图片来源2)

异或操作有以下特点
- 任何数与0异或结果为其自身: a^0=a
- 任何数与自己异或,结果为0: a^a=0
- 异或满足交换律和结合律: aba=(aa)b=b
这道题,只有1个数出现了1次,其余都出现了2次,根据上述特点,可以高效求解。
题解
C++:
class Solution {
public:
int singleNumber(vector<int>& nums) {
int ans=0;
for (auto i :nums)
{
ans^=i;
}
return ans;
}
};
Python:
from functools import *
class Solution(object):
def singleNumber(self, nums):
return reduce(lambda x,y:x^y,nums)

浙公网安备 33010602011771号