zoukankan      html  css  js  c++  java
  • leetcode_136. 只出现一次的数字

    给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
    
    说明:
    
    你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
    
    示例 1:
    
    输入: [2,2,1]
    输出: 1
    示例 2:
    
    输入: [4,1,2,1,2]
    输出: 4
    
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/single-number
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
    
    #方法1:使用集合
    class Solution:
        def singleNumber(self, nums: List[int]) -> int:
            s=set(nums)
            return sum(s)*2-sum(nums)
    
    #方法2:使用字典
    class Solution:
        def singleNumber(self, nums: List[int]) -> int:
            d={}
            for x in nums:
                if not x in d:
                    d[x]=x
                else:
                    d.pop(x)
            return list(d.keys())[0]
    
    方法3:使用按位异或
    class Solution:
        def singleNumber(self, nums: List[int]) -> int:
            s=0
            for x in nums:
                s^=x
            return s
    
  • 相关阅读:
    VSCode C++ 主题
    Linux 软连接应用
    Python 调用 C 动态库
    Qt 打包程序
    Qt 样式修改
    libusb 批传输的使用方法
    Qt 数据库操作
    Qt 调用第三方库
    CS 调用 C 动态库
    Qt 串口操作
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14067905.html
Copyright © 2011-2022 走看看