zoukankan      html  css  js  c++  java
  • 找出只出现一次的数字-Python

    问题:

    # 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 
    #
    # 说明:
    #
    # 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
    #
    # 示例 1:
    #
    # 输入: [2,2,1]
    # 输出: 1

    方法:不需要额外空间实现,就要往位运算上想

    基本概念:

    异或满足交换律:a^b^c = a^c^b

    自己和自己做异或结果是0:n^n = 0

    0和任何数做异或结果是其本身:0^n = n

    # leetcode submit region begin(Prohibit modification and deletion)
    class Solution:
        def singleNumber(self, nums: List[int]) -> int:
            a = 0
            for i in nums:
                a = a ^ i
            return a
    # leetcode submit region end(Prohibit modification and deletion)
    时刻记着自己要成为什么样的人!
  • 相关阅读:
    Go语言学习笔记(3)
    Haskell语言学习笔记(97)Phantom Type
    Rust语言学习笔记(12)
    堆排序 Rust实现
    Rust 智能指针(Rc)
    Rust 泛型
    Rust 枚举
    Rust 结构体
    Rust 引用
    二叉搜索树
  • 原文地址:https://www.cnblogs.com/demo-deng/p/15245349.html
Copyright © 2011-2022 走看看