Instructions
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
Input: nums = [1,2,3,1]
Output: true
Approach
We can solve this problem using several approaches.
A brute force approach would be to compare each element in the array with other elements to determine if they are the same.
This approach yields a time complexity of O(n)2 because we have to go through each element. The space complexity is O(1) because we do not use extra memory.
def contains_duplicate(nums): for i in range(0, len(nums)): for j in range(i+1, len(nums)): if nums[i] == nums[j]: return True return False
However, we can improve this solution by making a trade-off on space complexity.
We can use a set and compare the lengths of the array to determine if there a duplicates. A set contains only unique elements, therefore, if there are duplicates the length of the new array is smaller than the original array.
def containsDuplicate(self, nums): new_nums = set(nums) if len(new_nums)<len(nums): return True else: return False
One Liner
def containsDuplicate(self, nums): return True if len(set(nums))<len(nums) else False
This solution has a time complexity of O(n) and space complexity of O(n).
Approach 2
We can also use a hashmap or hashset and lookup if we have already encountered an element. If we have, we immediately return True because there is a duplicate.
def containsDuplicate(self, nums): hashset = set() for i in nums: if i in hashset: return True else: hashset.add(i) return False
We could also use a hashmap as follows:
def containsDuplicate(self, nums): hashmap = {} for i in nums: if i in hashmap: hashmap[i] = hashmap.get(i)+1 else: hashmap[i] = 1 for k,v in hashmap.items(): if v > 1: return True return False
The dictionary has a key-value pair where the element is the key and the value is the number of occurrence of a given element. If an element appears more than once then there is a duplicate and we return True.
This solution also has a time complexity of O(n) and space complexity of O(n).
Happy learning !!!
Top comments (0)