leetcode136. 只出现一次的数字
题目描述:
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
输入: [2,2,1]
输出: 1
代码模版(swift)
class Solution {
func singleNumber(_ nums: [Int]) -> Int {
}
}
思路(位运算)
将所有数字进行异或运算最后得到的值是只出现一次的数字,不使用额外空间。
两个相同的数异或结果为0,0与任何数异或结果为该数,异或运算遵从交换律。
class Solution {
func singleNumber(_ nums: [Int]) -> Int {
var ans = 0
for i in nums {
ans ^= i
}
return ans
}
}
本文正在参与「掘金 2021 春招闯关活动」, 点击查看活动详情