Problem Statement

Description

Given an integer array nums, return true if any value appears at least twice in the array, and return false if every element is distinct.

Examples

Example 1:

Input: nums = [1,2,3,1]
Output: true

Example 2:

Input: nums = [1,2,3,4]
Output: false

Example 3:

Input: nums = [1,1,1,3,3,4,3,2,4,2]
Output: true

Constraints

  • 1 <= nums.length <= 105
  • -109 <= nums[i] <= 109

Key Insights

This is a very simple problem that introduces the concept of a hash set. As we loop through the array, we check if the current number already exists in the set, if it does, we’re done! We can return True. If it doesn’t, we add the number to the set and move on. If we make it through the loop without finding a duplicate, we return False at the end.

Python Solution

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

        # If we find a number in the hash set, return True.
        # If we don't find any number in the hash set, we
        # know we don't have any duplicates, return False
        for num in nums:
            if num in hash_set:
                return True
            else:
                hash_set.add(num)
        
        return False