美文网首页
数组中只出现一次的数字

数组中只出现一次的数字

作者: 九日火 | 来源:发表于2021-01-15 10:11 被阅读0次

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字

class Solution:
    def SingleNumber(nums):
        res = 0
        if not nums:
            return res
        for i in nums:
            res ^= i
        return nums
// 题目:一个整型数组里除了一个数字之外,其他的数字都出现了两次
// 证明:我们把每个比特分开来看,有题目可知,每个元素出现两次,只有一个元素出现一次,那么,我们只需要保留每一位比特的出现单数次的符号就可以了
// 比如: [4, 1, 2, 1, 2] 用二进制表示
// 0 1 0 0
// 0 0 0 1
// 0 0 1 0
// 0 0 0 1
// 0 0 1 0
// 所以 第一位0出现单数次,我们取0
// 第二位, 1 出现单数次, 我们取1
// 第三位,0 出现单数次,我们取0
// 第四位,0 出现单数次,我们取0
// 所以 结果位 0100, 以上的操作用xor按顺序运行过来就可以

package main

func SingleNumber(nums []int) int {
    res := 0
    for _, num := range(nums) {
        res ^= n
    }
    return res
}

相关文章

网友评论

      本文标题:数组中只出现一次的数字

      本文链接:https://www.haomeiwen.com/subject/zcikaktx.html