美文网首页
找出一个列表中的非重复的值

找出一个列表中的非重复的值

作者: 领带衬有黄金 | 来源:发表于2019-11-01 23:20 被阅读0次

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

说明:

你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

nums = [1, 1, 4, 4, 5, 6]
for i in nums:
    if nums.count(i) == 1:
        print(i)


def filter_non_unique(lst):
    return [item for item in lst if lst.count(item) == 1]


print(filter_non_unique(nums))

上述算法在列表长度一定时,会显得非常的慢,需要改进
解决方案:
异或运算的特点:两个相同的数字异或,结果为0,0和任何数异或都是本身。

class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        num = 0
        for i in nums:
            num^=i
        return num

# 利用字典的键值对,可以计算多个重复值
class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        dic = {}
        for i in nums:
            dic[i] = dic.get(i,0)+1
        for k,v in dic.items():
            if v == 1:
                return k

相关文章

  • 找出一个列表中的非重复的值

    需求:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明...

  • 二分查找简单实现

    思考: 例一: 如果只是单纯从一个有序非重复的列表中查找某个值是最简单的但是如果遇到这个列表(非降序)中有重复值,...

  • 今日所学

    列表查询 值 = 列表[index] 根据下标找值\ Index = 列表.index(值) 从列表中找出某个值第...

  • 青少年编程 - 冒泡排序 选择排序

    冒泡排序 选择排序 选择排序 延申问题--怎样找出一个列表中的最大值 请列举出集中方法找出一个列表中的最大值,并将...

  • es6--Map和Set

    Set Set 表示一个无重复值的有序列表 set 中对象的引用无法被释放 WeakSet 不能传入非对象类型的参...

  • 数据结构 | 列表

    基本用法 创建数字列表 访问列表中的值 删除列表中重复元素 功能:删除列表中重复出现的元素,并且保持剩下元素的显示...

  • day7 --作业

    统计某个元素在列表中出现的次数 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) 从列表中找出某...

  • 散列表

    散列表 认识散列表 是 字典(键 、值对)的一种实现方式。每次在字典中获取一个值,都需要重复遍历字典,如果用散列表...

  • Python基础数据类型list

    1.切片,如何获取列表中的某个元素:访问列表中的值加号 + 号用于组合列表,* 号用于重复列表,列表截取, 2.向...

  • Python进阶 set集合

    与列表(list)的行为类似,区别在于set不能包含重复的值。 检查列表中是否包含重复的元素 交集 差集

网友评论

      本文标题:找出一个列表中的非重复的值

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