""" 0217.1 - Contains Duplicate - Solution 1 - Hash Set """
#####################################################################################
# Imports
#####################################################################################
from typing import List
#####################################################################################
# Classes
#####################################################################################
class Solution:
"""Solution Class"""
def containsDuplicate(self, nums: List[int]) -> bool:
"""Contains Duplicate Function"""
seen = set()
for num in nums:
if num in seen:
return True
seen.add(num)
return False
#####################################################################################
# Functions
#####################################################################################
def testcase():
"""Test Function"""
print(Solution().containsDuplicate([1, 2, 3, 1])) # True
print(Solution().containsDuplicate([1, 2, 3, 4])) # False
print(Solution().containsDuplicate([1, 1, 1, 3, 3, 4, 3, 2, 4, 2])) # True
#####################################################################################
# Main
#####################################################################################
if __name__ == "__main__":
testcase()
""" 0217.2 - Contains Duplicate - Solution 2 - Sorting """
#####################################################################################
# Imports
#####################################################################################
from typing import List
#####################################################################################
# Classes
#####################################################################################
class Solution:
"""Solution Class"""
def containsDuplicate(self, nums: List[int]) -> bool:
"""Contains Duplicate Function"""
nums.sort()
for i in range(len(nums) - 1):
if nums[i] == nums[i + 1]:
return True
return False
#####################################################################################
# Functions
#####################################################################################
def testcase():
"""Test Function"""
print(Solution().containsDuplicate([1, 2, 3, 1])) # True
print(Solution().containsDuplicate([1, 2, 3, 4])) # False
print(Solution().containsDuplicate([1, 1, 1, 3, 3, 4, 3, 2, 4, 2])) # True
#####################################################################################
# Main
#####################################################################################
if __name__ == "__main__":
testcase()
""" 0217.3 - Contains Duplicate - Solution 3 - Set Length Comparison """
#####################################################################################
# Imports
#####################################################################################
from typing import List
#####################################################################################
# Classes
#####################################################################################
class Solution:
"""Solution Class"""
def containsDuplicate(self, nums: List[int]) -> bool:
"""Contains Duplicate Function"""
return len(nums) != len(set(nums))
#####################################################################################
# Functions
#####################################################################################
def testcase():
"""Test Function"""
print(Solution().containsDuplicate([1, 2, 3, 1])) # True
print(Solution().containsDuplicate([1, 2, 3, 4])) # False
print(Solution().containsDuplicate([1, 1, 1, 3, 3, 4, 3, 2, 4, 2])) # True
#####################################################################################
# Main
#####################################################################################
if __name__ == "__main__":
testcase()