问题:有一堆数字,如果除了一个数字以外,其他数字都出现了两次,那么如何找到出现一次的数字?
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)
这个问题的关键在于弄清楚位运算符(异或^
)的作用就好办了