查找在数组中一次出现的元素,其中每个其他元素在C ++中出现两次

假设我们有一个数组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):
      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]))

输入项

[1,1,5,3,2,5,2]

输出结果

3
猜你喜欢