7. Contains Duplicate
easyAsked at RevolutDecide 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
nums=[1,2,3,1]trueExample 2
nums=[1,2,3,4]falseApproaches
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.
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 →