Two Sum

Question

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: nums = [2,7,11,15], target = 9

Output: [0,1]

Because nums[0] + nums[1] == 9, we return [0, 1].

Input: nums = [3,2,4], target = 6

Output: [1,2]

Input: nums = [3,3], target = 6

Output: [0,1]

Constraints:

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

Clarify the problem

What are some questions you'd ask an interviewer?

Understand the problem

Which of the following approaches would NOT work for solving the Two Sum problem?
Using a hash map to store values and their indices
Using two nested loops to check all possible pairs
Sorting the array first and then using binary search
Using a set to track seen values

Take a moment to understand the problem and think of your approach before you start coding.