[LeetCode][Python]217. 存在重复元素
给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数返回 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
思路:
本题应该有多个解法
- Python的set可以除重,如果列表的长度大于对应set的长度,就说明有重复元素
- 排序后比较相邻的元素,如果有相等的,就说明有重复元素
- 使用enumerate内置方法,利用字典key不会重复,如果在剩下的元素里有和字典的key相同,说明有重复元素
#! /usr/bin/env python
#coding=utf-8
class Solution(object):
def containsDuplicate(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
return True if len(nums) > len(set(nums)) else False
def containsDuplicate2(self, nums):
_dict = {}
for i, m in enumerate(nums):
if _dict.get(i) is not None:
return True
_dict[m] = i
return False
if __name__ == '__main__':
sol = Solution()
nums = [1,1,1,3,3,4,3,2,4,2]
print(sol.containsDuplicate(nums))
print(sol.containsDuplicate2(nums))