Two Sum - 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 that each input would have exactly one solution, and you may not use the same element twice.

You can return the answer in any order.

Input & Output

Example 1 — Basic Case
$ Input: nums = [2,7,11,15], target = 9
Output: [0,1]
💡 Note: nums[0] + nums[1] = 2 + 7 = 9, so we return the indices [0,1]
Example 2 — Different Position
$ Input: nums = [3,2,4], target = 6
Output: [1,2]
💡 Note: nums[1] + nums[2] = 2 + 4 = 6, so we return the indices [1,2]
Example 3 — Duplicate Values
$ Input: nums = [3,3], target = 6
Output: [0,1]
💡 Note: Both elements are the same: nums[0] + nums[1] = 3 + 3 = 6

Constraints

  • 2 ≤ nums.length ≤ 104
  • -109 ≤ nums[i] ≤ 109
  • -109 ≤ target ≤ 109
  • Only one valid answer exists.

Visualization

Tap to expand
Two Sum Problem INPUT Array: nums 2 idx: 0 7 idx: 1 11 idx: 2 15 idx: 3 Target = 9 Input Values: nums = [2, 7, 11, 15] target = 9 Find two nums that sum to 9 ALGORITHM STEPS Hash Map - One Pass 1 Initialize empty hash map map = {} 2 For each num, calculate complement = target - num 3 Check if complement exists in hash map 4 If found: return indices Else: store num and index Hash Map State: i=0: comp=7, map={2:0} i=1: comp=2, FOUND! map[2]=0 exists Return [0, 1] FINAL RESULT Found pair at indices: Index 0 2 + Index 1 7 2 + 7 = 9 Output: [0, 1] OK - Solution Found! nums[0] + nums[1] = target 2 + 7 = 9 Time: O(n), Space: O(n) Key Insight: Use a hash map to store each number and its index as you iterate. For each element, check if its complement (target - current) exists in the map. This reduces time complexity from O(n^2) brute force to O(n) single pass solution. TutorialsPoint - Two Sum | Hash Map One Pass Approach
Asked in
Google 127 Amazon 98 Apple 76 Microsoft 65
2.1M Views
Very High Frequency
~15 min Avg. Time
15.4K Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen