Neetcode 150 - Contains Duplicate

1. Brute Force

class Solution:
    def hasDuplicate(self, nums: List[int]) -> bool:
        for i in range(len(nums)):
            for j in range(i + 1, len(nums)):
                if nums[i] == nums[j]:
                    return True

        return False

Notes: for i in range(5,5) => it run nothing.

  • Time Complexity: O(N^2).

  • Space Complexity: O(1).

2. Sorting

class Solution:
    def hasDuplicate(self, nums: List[int]) -> bool:
        nums.sort()
        for i in range(1, len(nums)):
            if nums[i] == nums[i - 1]:
                return True

        return False
  • Time Complexity: O(NlogN).

  • Space Complexity: O(1).

3. Hash set:

class Solution:
    def hasDuplicate(self, nums: List[int]) -> bool:
        seen = set()
        for num in nums:
            if num in seen:
                return True
            seen.add(num)
        return False
  • Time Complexity: O(N).

  • Space Complexity: O(N).

4. Hash set length:

class Solution:
    def hasDuplicate(self, nums: List[int]) -> bool:
        return len(set(nums)) < len(nums)
  • Time Complexity: O(N).

  • Space Complexity: O(N).

Last Updated On October 22, 2025