lc.algoro.dev
← Back to problems

Two Sum

Easy #1 View Problem ↗ Array • Hash Table

Intuition

We need to find two numbers in the array whose sum equals the given target . A naive approach would be to check every possible fair, but this would be inefficient.

Instead, we can leverage the fact that if nums[i] + nums[j] = target , then nums[j] = target - nums[i] .

So as we iterate, if we already saw target - nums[i] , we have our answer.


Approach


Proof of Correctness


Complexity


Code

TypeScript Solution
function twoSum(nums: number[], target: number): number[] {
    const seen: Record<number, number> = {};

    for (let i = 0; i < nums.length; i++) {
        const num = nums[i];
        const complement = target - num;

        if (seen[complement] !== undefined) {
            return [seen[complement], i]
        }

        seen[num] = i;
    }

    return [];    
};
Python Solution
def twoSum(nums, target):
    seen = {}
    for i, num in enumerate(nums):
        complement = target - num
        if complement in seen:
            return [seen[complement], i]
        seen[num] = i