美文网首页
SINGLE NUMBER 落单的数

SINGLE NUMBER 落单的数

作者: adonisjph | 来源:发表于2016-01-15 16:14 被阅读112次

给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
样例 给出 [1,2,2,1,3,4,3] 返回 4

挑战 一次遍历,常数级的额外空间复杂度

最简单的办法就是对元素进行遍历查重,没有重复的就返回,但是这样的效率很低。

此处可以利用位运算来进行处理,当两个相同的数进行异或时,值为0,不同的数异或时,值为1.利用此特点,可以将数组内所有的数字进行异或处理,最后得出的结果便是落单的数。
ab=ba
0^a=a

class Solution: 
""" @param A : an integer array 
    @return : a integer 
""" 
def singleNumber(self, A): 
      # write your code here 
        result = 0 
        for i in A: 
              result = result ^ i 
        return results

相关文章

  • 一篇文章搞懂面试中leetcode位操作算法题

    Single Number落单的数 落单的数 IISingle Number II Single Number I...

  • SINGLE NUMBER 落单的数

    给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。样例 给出 [1,2,2,1...

  • single number

    题目描述 给定一个整数数组,除了一个元素外,每个元素都会出现两次。找到那一个出现一次的元素。注意:时间复杂度O(n...

  • Single number

    用异或

  • Single Number

    题目要求找出在算法的时间复杂度为线性时间,且不占据额外的内存 下面讲解算法:该算法主要用到了位运算中的异或运算^,...

  • Single Number

    Single Number 今天是一道有关位运算的题目,来自LeetCode(#136),难度为Medium,Ac...

  • Single Number

    Problem Given an array of integers, every element appears...

  • Single Number

    Given an array of integers, every element appearstwiceexc...

  • Single Number

    Given an array of integers, every element appearstwiceexc...

  • Single Number

    按位亦或可求解,复杂度为O(n)

网友评论

      本文标题:SINGLE NUMBER 落单的数

      本文链接:https://www.haomeiwen.com/subject/pvyhkttx.html