Introduction

The Two Sum Problem is one of the most commonly asked DSA interview questions, especially for beginners. It is often used by interviewers to check your understanding of arrays, searching, and hashing.

In simple words, this problem asks you to find two numbers in an array whose sum is equal to a given target value.

This article explains the Two Sum problem in easy and clear language, with proper examples and code that is easy to understand.

What is the Two Sum Problem?

You are given:

Your task is to find two different elements in the array such that their sum is equal to the target.

Example

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

Explanation

The numbers at index 0 and index 1 are 2 and 7.

2 + 7 = 9, which matches the target value.

Brute Force Approach (Basic but Slow)

In the brute-force method, we check every possible pair in the array.

Steps

  1. Pick the first element

  2. Compare it with every other element

  3. Check if their sum equals the target

Drawbacks

This approach is easy to understand but not efficient for large arrays.

Optimized Approach Using HashMap

To improve performance, we use a HashMap.

Idea Behind HashMap Approach

This reduces unnecessary comparisons.

Step-by-Step Explanation

Let’s understand with an example:

nums = [2, 7, 11, 15]
target = 9

Steps:

  1. Start with the first number (2)

  2. Calculate required value = 9 − 2 = 7

  3. 7 is not in the map, so store 2

  4. Move to next number (7)

  5. Required value = 9 − 7 = 2

  6. 2 is already in the map → Answer found

Code Implementation

C++ Code

vector<int> twoSum(vector<int>& nums, int target) {
    unordered_map<int, int> map;

    for (int i = 0; i < nums.size(); i++) {
        int required = target - nums[i];
        if (map.find(required) != map.end()) {
            return {map[required], i};
        }
        map[nums[i]] = i;
    }
    return {};
}

Java Code

public int[] twoSum(int[] nums, int target) {
    HashMap<Integer, Integer> map = new HashMap<>();

    for (int i = 0; i < nums.length; i++) {
        int required = target - nums[i];
        if (map.containsKey(required)) {
            return new int[] { map.get(required), i };
        }
        map.put(nums[i], i);
    }
    return new int[] {};
}

Python Code

def twoSum(nums, target):
    seen = {}

    for i, num in enumerate(nums):
        required = target - num
        if required in seen:
            return [seen[required], i]
        seen[num] = i

Time and Space Complexity

Using HashMap allows us to solve the problem in one pass.

Common Interview Questions Related to Two Sum

Interviewers often ask follow-up questions based on this problem.

Edge Cases in Two Sum Problem

When solving the Two Sum problem, it is important to think about special situations that can cause wrong answers if not handled properly.

Some common edge cases are:

Always make sure your solution handles these cases safely.

Two Sum Problem Without Using HashMap

The Two Sum problem can also be solved without using extra space.

In this approach, we use two loops and check every possible pair.

How it works

Drawback

This approach is useful only for learning basics or when the input size is very small.

Two Sum in Sorted Array (Two Pointer Approach)

If the given array is already sorted, we can solve the Two Sum problem using the Two Pointer technique.

Idea

Steps

  1. If sum is equal to target → answer found

  2. If sum is smaller than target → move left pointer forward

  3. If sum is greater than target → move right pointer backward

Time Complexity

Space Complexity

This is an efficient approach for sorted arrays.

Dry Run Using HashMap (Step-by-Step)

Let us clearly understand how the HashMap solution works.

Example: nums = [2, 7, 11, 15], target = 9

IndexValueRequiredMap Status
027{2:0}
172Found in map

The required value is found in the map, so we return the indices.

What Should Be Returned in Two Sum Problem?

Different problem statements may ask for different outputs.

Always read the problem carefully before writing code.

Common Variations of Two Sum Asked in Interviews

Interviewers often extend the Two Sum problem to test deeper understanding.

Some popular variations are:

Understanding the basic Two Sum logic helps solve these variations easily.

Summary

The Two Sum Problem is a foundational DSA question that teaches how to optimize a simple solution using hashing. While the brute-force approach checks all pairs, the HashMap method reduces the time complexity to linear time. By understanding edge cases, alternative approaches, and common interview variations, you can confidently solve this problem in real interviews. Mastering Two Sum also prepares you for many advanced array and hashing problems.