Skip to main content

136

Leetcode

Given a non-empty array of integers nums, every element appears twice except for one. Find that single one.

You must implement a solution with a linear runtime complexity and use only constant extra space.

Example 1:

Input: nums = [2,2,1]
Output: 1

Example 2:

Input: nums = [4,1,2,1,2]
Output: 4

Example 3:

Input: nums = [1]
Output: 1

对所有元素异或,相同的元素异或得到 0 ,最后的结果即单个元素

class Solution {
public int singleNumber(int[] nums) {
int ret=0;
for(int i:nums){
ret = ret ^ i;
}
return ret;
}
}
class Solution {
public:
int singleNumber(vector<int>& nums) {
int ret=0;
for(int i=0;i<nums.size();++i){
ret ^= nums[i];
}
return ret;
}
};
class Solution:
def singleNumber(self, nums: List[int]) -> int:
ret=0
for i in nums:
ret ^= i
return ret