首页 > 其他 > 详细

LeetCode 217题 存在重复元素

时间:2021-04-22 16:09:54      阅读:19      评论:0      收藏:0      [点我收藏+]

LeetCode 217题 存在重复元素

题目描述:

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

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

涉及内容:数组 哈希表

示例:

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

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

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

思路:

对于python来说,直接比较原来长度len(nums)和set(nums)的长度,相同说明不存在相同元素,返回false 不相同说明存在相同元素(这里也只可能set的小于len)返回true

提交结果:

技术分享图片

完整代码:

class Solution:
    def containsDuplicate(self, nums: List[int]) -> bool:
        return len(set(nums)) != len(nums)

其他思路:

  1. 排序:将数组排序 之后遍历比较每个数和其后面的数关系 相同就返回true 遍历完都不同就false

    class Solution:
        def containsDuplicate(self, nums: List[int]) -> bool:
            # 先对数组排序
            nums.sort()
            # 遍历数组,比较前后元素值
            for i in range(len(nums)-1):
                if nums[i] == nums[i+1]:
                    return True
            return False
    
    
  2. 哈希表:

    1. 遍历数组,将数组元素加入哈希表

    2. 如果元素存在哈希表中,则表示重复,返回true,否则遍历完的话没重复返回false

      class Solution:
          def containsDuplicate(self, nums: List[int]) -> bool:
              # 声明集合
              s = set()
              # 遍历数组,将元素添加到集合中
              for num in nums:
                  # 若元素存在于集合中,表示存在重复元素
                  if num in s:
                      return True
                  s.add(num)
              return False
      

https://leetcode-cn.com/problems/contains-duplicate/solution/217-cun-zai-zhong-fu-yuan-su-pai-xu-ha-x-kol5/

LeetCode 217题 存在重复元素

原文:https://www.cnblogs.com/leohbz/p/14689251.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!