Objective:
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.
Pattern: Arrays and Hashing
Approach:
- Use a Set because Set does not allow duplicates.
- Go through the array nums and add values to the set, check if the Set contains the value.
- If set contains value then return true, else return false.
Big-O Notation:
Time Complexity: O(n)
We have a for loop that goes through the array n times.
Space Complexity: O(n)
We have a Set that stores the n elements.
Code:
class Solution {
public boolean containsDuplicate(int[] nums) {
// Set -> doesn't allow duplicates
Set <Integer> hashSet = new HashSet<>();
// example: [2,5,8,5]
// set: 2, 5, 8, 5
for(int i = 0; i < nums.length; i++){
if(hashSet.contains(nums[i])){
return true;
}
hashSet.add(nums[i]);
}
return false;
}
}
Top comments (0)