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

4次阅读

共计 298 个字符,预计需要花费 1 分钟才能阅读完成。

力扣链接: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
}
正文完
 0