LeetCode136 只出现一次的数字

53 阅读1分钟

leetcode.cn/problems/si…

image.png

解法一:位运算

如何才能做到线性时间复杂度和常数空间复杂度呢?

答案是使用位运算。

异或运算有以下特性:

image.png

func singleNumber(nums []int) int {
    res := nums[0] // 题目说了至少长度1
    for i:=1; i<len(nums); i++{
        res ^= nums[i]
    }
    return res
}