Skip to main content

1. Two Sum

easyAsked at Mercury

Find indices of two numbers in an array that add up to a target.

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

Problem

Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume each input has exactly one solution and you may not use the same element twice.

Constraints

  • 2 <= nums.length <= 10^4
  • -10^9 <= nums[i] <= 10^9
  • Only one valid answer exists

Examples

Example 1

Input
nums = [2,7,11,15], target = 9
Output
[0,1]

Example 2

Input
nums = [3,2,4], target = 6
Output
[1,2]

Approaches

1. Brute force pairs

Check every pair (i,j) for nums[i] + nums[j] == target.

Time
O(n^2)
Space
O(1)
for (let i=0; i<nums.length; i++)
  for (let j=i+1; j<nums.length; j++)
    if (nums[i]+nums[j]===target) return [i,j];

Tradeoff:

2. Hash map complement

Walk once and store seen values; for each x check if target-x already exists. Single pass and linear time.

Time
O(n)
Space
O(n)
function twoSum(nums, target) {
  const seen = new Map();
  for (let i = 0; i < nums.length; i++) {
    const need = target - nums[i];
    if (seen.has(need)) return [seen.get(need), i];
    seen.set(nums[i], i);
  }
  return [];
}

Tradeoff:

Mercury-specific tips

At Mercury, expect this framed as finding two ACH transfers whose totals reconcile to a posted balance change; call out idempotency keys so retries don't double-match.

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 Two Sum and other Mercury interview questions under real-loop conditions with instant feedback on your reasoning, complexity claims, and code.

Practice these live with InterviewChamp.AI →