easyDSA

How do you find a duplicate in an array?

97 views
01

Understand the problem

Explain duplicate detection.

arraysduplicates
02

Attempt it yourself

Sketch your approach before reading the solution — that's what interviews test.

Stuck? AI Nudge Available

Get a conceptual hint to guide your logic without spoiling the final implementation.

03

Study the solution

The solution is waiting

Give it an honest attempt first — then compare your thinking with the full walkthrough.

04

Read the code

Hash set + Floyd (1..n)
Run Playground
def find_duplicate_set(nums):
    seen = set()
    for x in nums:
        if x in seen:
            return x
        seen.add(x)
    return -1

# O(1) space, values in 1..n (read-only):
def find_duplicate_floyd(nums):
    slow = fast = nums[0]
    while True:
        slow = nums[slow]
        fast = nums[nums[fast]]
        if slow == fast:
            break
    slow = nums[0]
    while slow != fast:
        slow = nums[slow]
        fast = nums[fast]
    return slow


# --- demo ---
print(find_duplicate_set([1, 3, 4, 2, 3]))     # 3
print(find_duplicate_floyd([1, 3, 4, 2, 2]))   # 2  (values 1..4)
05

Join the discussion

Discussion (0)

Sign in to join the discussion.

No responses yet. Be the first to share what you think.