zoukankan      html  css  js  c++  java
  • LeetCode刷题--存在重复元素

    题目

    存在重复元素:给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 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
    

    题目分析

    此题有三种解法:

    1. 通过python的set数据结构将nums转化为集合,集合会自动去重,那么是否有重复元素,就取决于集合的长度和原来数组的长度是否相等了,不相等则表示有重复。
    2. 通过在遍历元素时使用hash表,将hash表中没有的元素放入hash表,下次再遍历到该元素,hash表已有该元素,则可判断重复。
    3. 将数组进行排序,如果有重复的元素,则这些元素必定相邻,所以判断排序后的相邻元素是否相等即可。

    代码

    集合法

    def containsDuplicate(nums):
        return len(nums) != len(set(nums))
    nums =  [1,1,2,2]
    containsDuplicate(nums)
    

    hash表法

    def containsDuplicate(nums):
        d = {}
        for i in nums:
            if d.get(i):  
                return True
            d[i] = 1   
        return False
    nums =  [1,2,3,4]
    containsDuplicate(nums)
    

    排序法

    # 排序后,若有重复元素,则重复元素必定相邻
    def containsDuplicate(nums):
        nums.sort()
        for i in range(len(nums)-1):
            if nums[i] == nums[i+1]:
                return True
        return False
    nums =  [1,2,1,4]
    containsDuplicate(nums)
    

    测试

  • 相关阅读:
    MySQL数据库有哪些安全相关的参数需要修改?
    Python PEP-8编码风格指南中文版
    linux系统/var/log目录下的信息详解
    mcelog用法详解
    timeout 命令
    x86服务器MCE(Machine Check Exception)问题
    IPv6简介
    MySQL innodb统计信息
    memory 监控 mysql vs percona vs maria
    oracle 压力测试工具benchmarksql
  • 原文地址:https://www.cnblogs.com/sinlearn/p/13085899.html
Copyright © 2011-2022 走看看