我是靠谱客的博主 传统小蝴蝶,最近开发中收集的这篇文章主要介绍LC初级算法:只出现一次的数字-Python,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

示例 1 :

输入:nums = [2,2,1]
输出:1
示例 2 :

输入:nums = [4,1,2,1,2]
输出:4
示例 3 :

输入:nums = [1]
输出:1
 

提示:

1 <= nums.length <= 3 * 104
-3 * 104 <= nums[i] <= 3 * 104
除了某个元素只出现一次以外,其余每个元素均出现两次。

作答如下:

用到了内置的函数:list.count

class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        for i in range(0,len(nums)):
            if nums.count(nums[i])==1:
                return nums[i]
        return 0

set集合

class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        set1=set()
        for i in nums:
            if i in set1:
                set1.remove(i)
            else:
                set1.add(i)
        for i in set1:
            return i

异或

  • 任何数与0异或等于任何数
  • n与n异或等于0
    class Solution:
        def singleNumber(self, nums: List[int]) -> int:
            a=0
            for i in range(len(nums)):
                a=a^nums[i]
            return a

最后

以上就是传统小蝴蝶为你收集整理的LC初级算法:只出现一次的数字-Python的全部内容,希望文章能够帮你解决LC初级算法:只出现一次的数字-Python所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部