博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode 217 存在重复
阅读量:7009 次
发布时间:2019-06-28

本文共 1184 字,大约阅读时间需要 3 分钟。

给定一个整数数组,判断是否存在重复元素。

如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。

示例 1:

输入: [1,2,3,1]输出: true

示例 2:

输入: [1,2,3,4]输出: false

示例 3:

输入: [1,1,1,3,3,4,3,2,4,2]输出: true

方法一:

将nums排序,通过set转换为集合后再转换为列表并排序,前者和后者相等,则无重复元素

def containsDuplicate( nums):    """    :type nums: List[int]    :rtype: bool    """    nums.sort()    print(nums)    if nums==[]:        return False    s = list(set(nums))    s.sort()    # 排序后再作比较    print(s)    if s == nums:        return False    else:        return True

改进:

只需将转换后的集合和原列表长度相比较即可,若长度相等则没有重复元素

def containsDuplicate2( nums):    """    :type nums: List[int]    :rtype: bool    """    if len(set(nums))==len(nums):        return False    else:        return True

方法三:

利用python collections库中的Counter计数实现

import collectionsdef containsDuplicate3(nums):    dic=collections.Counter(nums)    # collections的Counter类可实现对每个元素的计数功能,返回的是字典,key是元素,value是其出现的次数    # Counter({5: 2, 1: 1, -2: 1, -4: 1, 0: 1})    print(dic)    for value in dic.values():        if value>=2:            return True    return False

注:

Counter类的目的是用来跟踪值出现的次数。它是一个无序的容器类型,以字典的键值对形式存储,其中元素作为key,其计数作为value。计数值可以是任意的Interger(包括0和负数)。


 
 

转载于:https://www.cnblogs.com/Aprilnn/p/9531696.html

你可能感兴趣的文章
Rsync实现Windows系统与Linux文件同步
查看>>
简单工厂模式( Simple Factory Pattern )
查看>>
CentOS 7安装laravel 5.5.28
查看>>
SQL Server 2005 创建Oracle10g 的链接服务器
查看>>
菜单项启动Activity
查看>>
Ubuntu下安装Python的Tkinter和Pmw库
查看>>
安装Nginx+Lua开发环境
查看>>
nginx nginx.pid无故文件丢失,日志无法正常轮转
查看>>
我的友情链接
查看>>
XML中元素VS属性
查看>>
wepy - 小程序快速开发框架
查看>>
nodejs找不到express命令
查看>>
ubuntu13.04通过lxc搭建容器java运行环境
查看>>
RHCE官方培训笔记---分享
查看>>
top命令是Linux下常用的性能分析
查看>>
使用memcached缓存tomcat7会话信息
查看>>
Fatal Python error: pycurl: libcurl link-time version is older than compile-time version
查看>>
CentOS7:搭建SVN + Apache 服务器
查看>>
想要成为一个合格的软件架构师必须知道的事情
查看>>
cachestat、cachetop、pcstat-linux系统缓存命中率分析工具
查看>>