217. Contains Duplicates
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.
Solution
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
found = set()
for num in nums:
if num in found:
return True
else:
found.add(num)
return False
Time Complexity: O(n)
Space Complexity: O(n)
Explanation
The idea is to linearly go through the input "nums" and basically remember everything we've seen in a constant-access data structure.
By doing so, we're able to check, efficiently, if we've encountered a particular entry in nums before.
Alternatively, if linear space was an issue and you could afford to sacrifice some time complexity: Sorting the nums list and comparing adjacent values would also work. This would simply be O(nlgn) time and O(1) space.