217. Contains Duplicate

Description

Solutions

There are numerous solutions to this problem. Here are a few.

Solution 1

class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
return len(set(nums)) != len(nums)
Space O(N), Time O(N) - from creating the set

Solution 2

class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
cache = defaultdict(int)
for i in nums:
if i in cache:
return True
else:
cache[i] = i
return False
Space O(N), Time O(N)

Solution 3

This would be the slowest solution as it has the overhead of sorting the list.
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
sorted_list = sorted(nums)
for i in range(len(sorted_list) - 1):
if sorted_list[i] == sorted_list[i+1]:
return True
return False
Space O(N), Time O(N log N) - Time complexity for sort. See: https://wiki.python.org/moin/TimeComplexity​
​