关于golang:Leetcode专题数组136只出现一次的数字

力扣链接:https://leetcode-cn.com/probl…
解题思路:

  1. 惯例思路:应用哈希/汇合来进行去重判断,然而须要从新开拓空间,导致空间复杂度回升
  2. 异或:英文为exclusive OR,缩写成xor,它有如下运算法令:

    如上所示,在题目中,只有一个数字只呈现了一次,依据结合律&交换律&自反定律克可知,两个雷同的数字异或后果为0,0与任何数字异或等于数字自身,所以所有的数字与初始化数字0抑或,最初的值就是指呈现一次的数字
func singleNumber(nums []int) int {
    single := 0
    for _, v := range nums {
        single ^= v
    }
    return single
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理