练习题:leetcode 习题 136. 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
思路:
尝试使用位运算解决此题。
一个整数与自己异或的结果是0
一个整数与0异或的结果是自己
异或操作满足交换律,即 a^b^c^d^a^b^d == a^a^b^b^d^d^c == c
class Solution:
def singleNumber(self, nums: List[int]) -> int:
res = 0
for num in nums:
res^=num
return res
class Solution {
public:
int singleNumber(vector<int>& nums) {
int res = 0;
for(auto num:nums){
res^=num;
}
return res;
}
};