位运算
class Solution(object):
def singleNonDuplicate(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
n = 0
for x in nums:
n ^= x
return n
二分法
class Solution(object):
def singleNonDuplicate(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
left = 0
right = len(nums) - 1
while left < right:
mid = left + (right - left) // 2
# 保证mid是偶数
if mid & 1:
mid -= 1
if nums[mid] == nums[mid+1]:
left = mid+2
else:
right = mid
return nums[left]