PracticeNeetCode ↗LeetCode ↗
Given an integer array nums, return true if any value appears at least twice, and false if every element is distinct.
seen.n in nums: if n is already in seen, return True immediately.n to seen and continue.False.Time: O(n) — Space: O(n)
def containsDuplicate(nums: list[int]) -> bool:
seen = set()
for n in nums:
if n in seen:
return True
seen.add(n)
return FalseHow the solution above works, piece by piece.
seen = set(): remembers every number looked at so far. Checking x in seen on a set is O(1) on average.for n in nums: one pass, left to right.if n in seen: return True: this number appeared earlier, so there is a duplicate. Stop immediately; no need to look further.seen.add(n): otherwise remember it for later numbers.return False. O(n) time, O(n) space for the set.Running it on nums = [1, 2, 3, 1]:
True without finishing.