假设我们有一个数组A。在这个数组中,有很多数字出现两次。一次只能找到一个元素。我们必须从该数组中找到该元素。假设A = [1、1、5、3、2、5、2],则输出将为3。由于每个数字都有两次,因此我们可以执行XOR来抵消该元素。因为我们知道y XOR y = 0
为了解决这个问题,我们将按照以下步骤进行。
取一个变量res = 0
对于数组A中的每个元素e,瓶坯res = res XOR e
返回资源
让我们看下面的实现以更好地理解-
class Solution(object): def singleNumber(self, nums): """ :type nums: List[int] :rtype: int """ ans = nums[0] for i in range(1,len(nums)): ans ^=nums[i] return ans ob1 = Solution()print(ob1.singleNumber([1,1,5,3,2,5,2]))
nums = [1,1,5,3,2,5,2]
输出结果
3