zoukankan      html  css  js  c++  java
  • 《剑指offer》数组中只出现一次的数字

    本题来自《剑指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                       #最后返回,只有单个的字符了

    总结:

  • 相关阅读:
    next_permitation
    POJ 1979 Red and Black
    POJ 2386 Lake Counting
    BFS简单迷宫
    部分和问题
    图论复习--二分图判断
    danci1
    danci
    jquery事件重复绑定解决办法
    danci
  • 原文地址:https://www.cnblogs.com/missidiot/p/10826122.html
Copyright © 2011-2022 走看看