Skip to content

Latest commit

 

History

History
71 lines (55 loc) · 1.33 KB

File metadata and controls

71 lines (55 loc) · 1.33 KB

Hash-map Problem 8

LeetCode: https://leetcode.com/problems/contains-duplicate/ Difficulty: Medium

Problem

Solve this hash-map problem efficiently.

Brute Force Approach

function solve(nums) {
    let result = [];
    // Check all possibilities
    for (let i = 0; i < nums.length; i++) {
        for (let j = i + 1; j < nums.length; j++) {
            // Process pairs
            if (/* condition */) {
                result.push([i, j]);
            }
        }
    }
    return result;
}

⏱️ Time: O(n²) or O(n³)
💾 Space: O(n)

Optimal Approach

function solve(nums) {
    const map = new Map();
    const result = [];
    
    for (let i = 0; i < nums.length; i++) {
        // Use hash map for O(1) lookup
        const complement = target - nums[i];
        if (map.has(complement)) {
            result.push([map.get(complement), i]);
        }
        map.set(nums[i], i);
    }
    return result;
}

⏱️ Time: O(n) or O(n log n)
💾 Space: O(n) or O(1)

Visual Diagram

Hash Map:
┌────┬──────┐
│ Key│Value │
├────┼──────┤
│ 'a'│  1   │
│ 'b'│  2   │
│ 'c'│  3   │
└────┴──────┘

Fast O(1) lookup

Visit LeetCode for full problem description.