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.
Input: nums = [2,7,11,15], target = 9
Output: [0, 1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].
We can solve this problem efficiently using a hash map (dictionary in Python). The approach works by:
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.
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