Max Number of K-Sum Pairs

MediumArrayHash TableTwo PointersSorting

Solution

export function maxOperations(nums: number[], k: number): number {
  const counter = new Map<number, number>();
  for (const num of nums) {
    counter.set(num, (counter.get(num) || 0) + 1);
  }
 
  let answer = 0;
  for (const num of counter.keys()) {
    const count = counter.get(num) || 0;
    const targetCount = counter.get(k - num) || 0;
    answer += num === k - num ? Math.floor(count / 2) : Math.min(count, targetCount);
    counter.set(num, 0);
    counter.set(k - num, 0);
  }
  return answer;
}