解法一:位运算
如何才能做到线性时间复杂度和常数空间复杂度呢?
答案是使用位运算。
异或运算有以下特性:
func singleNumber(nums []int) int {
res := nums[0] // 题目说了至少长度1
for i:=1; i<len(nums); i++{
res ^= nums[i]
}
return res
}
如何才能做到线性时间复杂度和常数空间复杂度呢?
答案是使用位运算。
异或运算有以下特性:
func singleNumber(nums []int) int {
res := nums[0] // 题目说了至少长度1
for i:=1; i<len(nums); i++{
res ^= nums[i]
}
return res
}