Description
Given a non-empty array of integers nums, every element appears twice except for one. Find that single one.
Follow up: Could you implement a solution with a linear runtime complexity and without using extra memory?
Constraints:
• 1 <= nums.length <= 3 * 104
• -3 * 104 <= nums[i] <= 3 * 104
• Each element in the array appears twice except for one element which appears only once.
Example
Example 1:
Input: nums = [2,2,1]
Output: 1
Example 2:
Input: nums = [4,1,2,1,2]
Output: 4
Example 3:
Input: nums = [1]
Output: 1
Submissions
首先题意指给定了一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。于是解题思路采用位操作的异或操作(^ ),其中属性有n^ n = 0,0^n = n。因此将数组中的所有数进行异或操作即可得到出现一次的数。
实现代码如下:
class Solution:
def singleNumber(self, nums: List[int]) -> int:
res = nums[0]
for i in range(1,len(nums)):
res = res ^ nums[i]
return res