56-数组中数字出现的次数

题目:一个整型数组里除两个数字之外,其他数字都出现了两次。请找出这两个只出现一次的数字。时间复杂度O(n),空间复杂度O(1)。本题代码部分是简化版,只有一个数字出现了一次,其他都是两次。

def find_appear(arrys):
    res = 0
    for arry in arrys:
        res^=arry
    return res

  注:使用异或运算。运用异或的特点:一个数和0异或还是它本身;一个数和自己异或为0。有两个出现一次的问题,需要先将原数组进行分成两部分分别处理,每一部分只有一个只出现一次的数。

 

posted @ 2019-09-17 21:53  尘世中一个迷途小书童  阅读(131)  评论(0编辑  收藏  举报