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

概述

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


首先考虑,如果一个数组出了一个数字外,其余的数组都出现了偶数次的解法:XOR异或方法可以消除偶数出现的数字
将数组中所有的数字全部异或,得到最后的结果就是出现一次的数字

class Solution:
    def FindNumsAppearOnce(self, array):
        # write code here
        result = 0
        for i in array:
            result = result ^ i
        return result

解法1:数组中出现两次的数字,可以用字典的算法:
创建字典的方法:if i not in dic: dic[i] = 1

class Solution:
    # 返回[a,b] 其中ab是出现一次的两个数字
    def FindNumsAppearOnce(self, array):
        # write code here
        if array == []:
            return []
        dic = {}
        for i in array:
            if i in dic:
                dic[i] += 1
            else:
                dic[i] = 1
        result = []
        for j in dic:
            if dic[j] == 1:
                result.append(j)
        return result

运行时间:28ms

占用内存:5728k

解法2:可以采用array.count方法,这样时间复杂度肯定比较大。

class Solution:
    # 返回[a,b] 其中ab是出现一次的两个数字
    def FindNumsAppearOnce(self, array):
        # write code here
        if array == []:
            return []
        result = []
        for i in array:
            if array.count(i) == 1 and i not in result:
                result.append(i)
        return result

运行时间:29ms

占用内存:5860k

最后

以上就是安详黑夜为你收集整理的数组中只出现一次的两个数字【python】的全部内容,希望文章能够帮你解决数组中只出现一次的两个数字【python】所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部