我是靠谱客的博主 满意秀发,最近开发中收集的这篇文章主要介绍Python 数组中只出现一次的数字,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

# -*-coding:utf-8 -*-
class Solution:
    def FindNumsAppearOnce(self, array):
        # 如果两个数相同,那么这两个数的异或操作就等于0
        if len(array) < 2:
            return None
        twoNumXor = None
        for num in array:
            if twoNumXor == None:
                twoNumXor = num
            else:
                twoNumXor = twoNumXor ^ num
        count = 0
        while twoNumXor % 2 == 0:
            twoNumXor = twoNumXor >> 1
            count += 1
        mask = 1 << count

        firstNum = None
        secondNum = None

        for num in array:
            if mask & num == 0:
                if firstNum == None:
                    firstNum = num
                else:
                    firstNum = firstNum ^ num
            else:
                if secondNum == None:
                    secondNum = num
                else:
                    secondNum = secondNum ^ num

        return firstNum, secondNum


if __name__ == '__main__':
    array = [1, 2, 3, 1, 2, 3, 4, 7, 4, 8]
    s = Solution()
    print(s.FindNumsAppearOnce(array))

运行结果为:

(8, 7)

最后

以上就是满意秀发为你收集整理的Python 数组中只出现一次的数字的全部内容,希望文章能够帮你解决Python 数组中只出现一次的数字所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部