有一堆数字,如果除了一个数字以外,其他数字都出现了两次,那么如何找到出现一次的数字?

原创
小哥 2年前 (2023-05-17) 阅读数 9 #大杂烩

问题:有一堆数字,如果除了一个数字以外,其他数字都出现了两次,那么如何找到出现一次的数字?

    nums := []int{1, 5, 1, 6, 5, 3, 6}
    i := 0
    len := len(nums)
    for j := 0; j < len; j++ {
        i ^= nums[j]
    }
    fmt.Println(i)

或者

    nums := []int{1, 5, 1, 6, 5, 3, 6}
    i := 0
    for _, v := range nums {
        i ^= v
    }
    fmt.Print(i)

这个问题的关键在于弄清楚位运算符(异或 ^ )的作用就好办了

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除