Back to all solutions

#1679 - Max Number of K-Sum Pairs

Problem Description

You are given an integer array nums and an integer k.

In one operation, you can pick two numbers from the array whose sum equals k and remove them from the array.

Return the maximum number of operations you can perform on the array.

Solution

/**
 * @param {number[]} nums
 * @param {number} k
 * @return {number}
 */
var maxOperations = function(nums, k) {
  const map = new Map();
  let result = 0;

  nums.forEach(n => {
    const diff = k - n;

    if (map.get(diff)) {
      result++;
      map.set(diff, map.get(diff) - 1);
    } else {
      map.set(n, (map.get(n) ?? 0) + 1);
    }
  });

  return result;
};