136.
給你一個 非空 整數數組 nums ,除了某個元素隻出現一次以外,其餘每個元素均出現兩次。找出那個隻出現了一次的元素。
你必須設計并實作線性時間複雜度的算法來解決此問題,且該算法隻使用常量額外空間。
來源:力扣(LeetCode)
連結:力扣

https://leetcode.cn/problems/single-number/開始審題不清楚,自己又構造了一個清單,解出了這道題。
class Solution:
def singleNumber(self, nums: List[int]) -> int:
nums2=2*list(set(nums))
nums.sort()
nums2.sort()
i=0
j=0
while i<len(nums) and j<len(nums2):
if nums2[j] != nums[i]:
return nums2[j]
elif i==len(nums)-1:
return nums[i]
else:
i+=1
j+=1
題目要求隻使用常量額外空間,考慮異或運算。
i ^ 0 = i
i ^ i = 0
class Solution:
def singleNumber(self, nums: List[int]) -> int:
a=0
for i in nums:
a=a^i
return a