217. Contains Duplicate@python
Given an array of integers, find if the array contains any duplicates.
Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct.
原题地址: Contains Duplicate
难度: Easy
题意: 判断数组中是否存在重复的数
思路1:
排序, 遍历数组,比较前后两个数是否相等
class Solution(object): def containsDuplicate(self, nums): """ :type nums: List[int] :rtype: bool """ nums.sort() for i in range(len(nums)-1): if nums[i] == nums[i+1]: return True return False
时间复杂度:O(nlog(n))
空间复杂度:O(1)
思路2:
统计每个数的个数
class Solution(object): def containsDuplicate(self, nums): """ :type nums: List[int] :rtype: bool """ d = {}
for num in nums:
d[num] = d.get(num, 0) + 1
if d[num] > 1: return True return False
时间复杂度:O(n)
空间复杂度:O(n)
思路3:
转化为set(),比较list和set的长度,相等说明没有重复的数,不相等说明存在重复的数
class Solution(object): def containsDuplicate(self, nums): """ :type nums: List[int] :rtype: bool """ return len(nums) == len(set(nums))
时间复杂度:O(n)
空间复杂度:O(n)

浙公网安备 33010602011771号