LeetCode #1 – Two Sum


Problem Statement

  1. Task



Brute Force Solution (O(n²))

  1. Idea


  2. Core Loop Structure
  3. function twoSum(nums: number[], target: number): number[] {
        for (let i = 0; i < nums.length; i++) {
            for (let j = i + 1; j < nums.length; j++) {
                if (nums[i] + nums[j] === target) {
                    return [i, j];
                }
            }
        }
    }
    

  4. Complexity



Optimized Hash Map Solution (O(n))

  1. High-Level Idea


  2. Core Logic
  3. const memo = new Map<number, number>();
    
    for (let i = 0; i < nums.length; i++) {
        const diff = target - nums[i];
    
        if (memo.has(diff)) {
            // We have seen `diff` before at index memo.get(diff)
            return [memo.get(diff)!, i];
        }
    
        // Remember the current number and its index
        memo.set(nums[i], i);
    }
    

  4. Complexity