首页 > 编程语言 > 详细

《剑指offer》数组中只出现一次的数字

时间:2019-05-07 16:59:24      阅读:164      评论:0      收藏:0      [点我收藏+]

本题来自《剑指offer》 数组中只出现一次的数字

题目:

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

思路:

   思路一:在《剑指offer》书上,采用了异或的方式,未详看。

  思路二:在python中,将第一个数据放入其中,从第二个开始遍历,如果已经存在缓存中,那么就去除掉,否则就加入其中,遍历一次的时间复杂为O(n),空间复杂度为O(1)常熟级别的。

C++ Code:

Python Code:

# -*- coding:utf-8 -*-
class Solution:
                                            # 返回[a,b] 其中ab是出现一次的两个数字
    def FindNumsAppearOnce(self, array):
        # write code here
        result = []
        result.append(array[0])             #放置第一个元素
        for index in range(1,len(array)):   #从第二个元素开始遍历
            if array[index] in result:      #如果已经存在了就将删除
                result.remove(array[index])
            else:                           #如果第一次出现就加入到列表中
                result.append(array[index])
        return result                       #最后返回,只有单个的字符了

总结:

《剑指offer》数组中只出现一次的数字

原文:https://www.cnblogs.com/missidiot/p/10826122.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!