Leetcode | Solution of Contains Duplicate in JavaScript
In this post, we will solve contains duplicate problem from leetcode and compute it's time & space complexity. Let's begin.
Problem Statement
The question can be found at leetcode contains duplicate problem.
The problem states that we need to determine if there are any duplicates in a given array
Solution
The problem is pretty simple. We can solve it in multiple ways
Using Hashmap
We can iterate over the array and keep all the values in a map or object. In case the value already exists in the map, we have found our duplicate.
Using Set
We will solve the question using a set here. Set only holds unique values. So if we add all the elements from the array into the set, the length of set and array should be equal if there are no duplicates.
We have discussed the approach, I urge you to go ahead on leetcode and give it another try.
If you are here, it means something went wrong in implementation or you are just too lazy . In any case, let's see a simple implementation of the above logic.
var containsDuplicate = function(nums) {
const set = new Set(nums);
return set.size !== nums.length
};
Let's discuss the implementation.
On line 2, we are adding all the elements of the array to the Set. In the next line, we are checking if the length of the array is equal to the size of the set and return the answer accordingly.
This is all we need to solve the problem, once we submit it, these are the stats.
Status: Accepted
Runtime: 60ms
Memory: 40MB
Time and space complexity
Time complexity
We are adding all the numbers from the array into the set. So the complexity would be dependent on the implementation of Set. If I would have to take a guess, time complexity would be linear O(n).
Space complexity
We are storing all the elements of the array in the set, so space complexity would be O(n).
Summary
So, we solved the contains duplicate problem using a Set and calculated the time and space complexities.
I hope you enjoyed solving this question. This is it for this one, complete source code for this post can be found on my Github Repo. Will see you in the next one.
There you go guys, you made it to end of the post. Subscribe to my youtube channel for regular updates. Follow me on twitter, drop me a mail or leave a comment here if you still have any doubts and I will try my best to help you out. Thanks
Stay tuned and see you around :)