leetcode之136只出现一次的数字Golang

先决知识

异或操作符^

关于异或运算:

  • 我们需要知道的是任意两个相同的数进行异或运算结果为0

  • 0与任意数字异或运算结果还是该数字本身

算法

将数组中所有元素进行异或运算,由于之前所有元素都成对出现,所以那些元素异或结果为0,这个0与那个单独的元素异或运算,结果就是只出现一次的那个元素

代码如下:

func singleNumber(nums []int) int {
    var res int
    for _, value := range nums {
        res ^= value
    }
    return res
}

  

 

posted @ 2020-09-14 10:58  胖胖咩  阅读(138)  评论(0)    收藏  举报