Light Dark

1. Two Sum

Back to Certificates

Problem Description

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.

Example:

Input: nums = [2,7,11,15], target = 9
Output: [0, 1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].

Solution Approach

We can solve this problem efficiently using a hash map (dictionary in Python). The approach works by:

  1. Iterating through the array
  2. For each element, calculating its complement (target - current element)
  3. Checking if the complement exists in our hash map
  4. If it does, we've found our pair
  5. If not, add the current element to the hash map and continue

This allows us to find the solution in a single pass through the array.

Time Complexity: O(n) where n is the length of the array. We traverse the list once.

Space Complexity: O(n) as we store at most n elements in the hash table.

Python Implementation:

from typing import List

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        seen = {}
        for i, num in enumerate(nums):
            complement = target - num
            if complement in seen:
                return [seen[complement], i]
            seen[num] = i