在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]

輸出

3

更新於:2020年8月19日

298 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.