Contains Duplicate
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
nums = [1,2,3,1]
true
Element 1 appears twice.
nums = [1,2,3,4]
false
All elements are distinct.
Constraints
- •
1 <= nums.length <= 10^5 - •
-10^9 <= nums[i] <= 10^9
Approaches
Compare every pair of elements using nested loops.
def contains_duplicate(nums):
for i in range(len(nums)):
for j in range(i + 1, len(nums)):
if nums[i] == nums[j]:
return True
return FalseSort the array and check adjacent elements for duplicates.
def contains_duplicate(nums):
nums.sort()
for i in range(1, len(nums)):
if nums[i] == nums[i - 1]:
return True
return FalseUse a hash set to track seen elements. If an element is already in the set, return true.
Diagram
def contains_duplicate(nums):
seen = set()
for num in nums:
if num in seen:
return True
seen.add(num)
return FalseComplexity Comparison
| Approach | Time | Space | Description |
|---|---|---|---|
| Brute Force | O(n^2) | O(1) | Compare every pair of elements using nested loops. |
| Sorting | O(n log n) | O(1) | Sort the array and check adjacent elements for duplicates. |
| Hash Set | O(n) | O(n) | Use a hash set to track seen elements. If an element is already in the set, return true. |
Compare every pair of elements using nested loops.
Sort the array and check adjacent elements for duplicates.
Use a hash set to track seen elements. If an element is already in the set, return true.
Common Mistakes
Using len(set(nums)) == len(nums) which creates unnecessary extra space
Off-by-one errors when comparing adjacent elements after sorting
Forgetting to handle empty arrays or single-element arrays