Post

LC 217 - Contains Duplicate

LC 217 - Contains Duplicate

Question

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.

Example 1:

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

Explanation:

The element 1 occurs at the indices 0 and 3.

Example 2:

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

Explanation:

All elements are distinct.

Example 3:

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

Constraints:

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

Question here and solution here

Solution

concept

The main concept here is to use hashset since adding and checking value in it is an $O(1)$ operations

code

1
2
3
4
5
6
7
8
9
class Solution:
    def hasDuplicate(self, nums: List[int]) -> bool:
        hashset = set()

        for n in nums:
            if n in hashset:
                return True
            hashset.add(n)
        return False

Complexity

time: $O(n)$ space: $O(n)$

This post is licensed under CC BY 4.0 by the author.