• 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
    
  • 相关阅读:
    退出程序
    筛选datatable
    1-2 开发环境搭建-Windows平台
    5-1 安全发布对象-发布与逸出
    4-4 线程安全性-可见性
    4-3 线程安全性-原子性-synchronized
    4-2 线程安全性-原子性-atomic-2
    4-1 线程安全性-原子性-atomic-1
    Spring
    Spring
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14067905.html
Copyright © 2020-2023  润新知