Skip to main content

7. Contains Duplicate

easyAsked at Revolut

Decide whether any value appears at least twice in an array, a Revolut warm-up that mirrors detecting a re-submitted transaction ID before the ledger double-books it.

By Alex Chen, Founder, InterviewChamp.AI · Last verified

Problem

Given an integer array nums, return true if any value appears at least twice in the array, and false if every element is distinct. Aim for linear time on large inputs.

Constraints

  • 1 <= nums.length <= 10^5
  • -10^9 <= nums[i] <= 10^9

Examples

Example 1

Input
nums=[1,2,3,1]
Output
true

Example 2

Input
nums=[1,2,3,4]
Output
false

Approaches

1. Sort and scan

Sort then check adjacent equals.

Time
O(n log n)
Space
O(1)
nums.sort((a,b)=>a-b);
for (let i=1;i<nums.length;i++) if (nums[i]===nums[i-1]) return true;
return false;

Tradeoff:

2. Hash set

Insert into a set; return true on first duplicate. Linear average time.

Time
O(n)
Space
O(n)
function containsDuplicate(nums){
  const seen = new Set();
  for (const x of nums){
    if (seen.has(x)) return true;
    seen.add(x);
  }
  return false;
}

Tradeoff:

Revolut-specific tips

Revolut frames this as idempotency-key collision detection — explicitly mention that the production fix is also a hash set keyed by transaction ID.

Solve it now

Free. No sign-up. Python and JavaScript run instantly in your browser.

Output

Press Run or Cmd+Enter to execute

Practice these live with InterviewChamp.AI

Drill Contains Duplicate and other Revolut interview questions under real-loop conditions with instant feedback on your reasoning, complexity claims, and code.

Practice these live with InterviewChamp.AI →