• + 0 comments

    Typescript solution. Time O(n), Space O(k). k is the number of colors.

    function sockMerchant(n: number, ar: number[]): number { if (n < 2) return 0;

    const unpairedSocks = new Set<number>();
    let pairs = 0;
    
    for (const color of ar) {
        if (unpairedSocks.has(color)) {
            pairs++;
            unpairedSocks.delete(color);
        } else {
            unpairedSocks.add(color);
        }
    }
    
    return pairs;
    

    }