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


假设我们有一个数组A。在这个数组中,不同的数字出现两次。但是只有一个数字出现一次。我们必须从该数组中找到该元素。

假设 A = [1, 1, 5, 3, 2, 5, 2],则输出将为 3。由于每个数字都出现两次,我们可以执行异或运算来消除该元素,因为我们知道 y XOR y = 0

为了解决这个问题,我们将遵循以下步骤。

  • 取一个变量 res = 0

  • 对于数组 A 中的每个元素 e,执行 res := res XOR e

  • 返回 res

示例

让我们看看下面的实现,以便更好地理解:

在线演示

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]

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

输出

3

更新于:2020年8月19日

298 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告