从差值为 k 的数组中查找整数对(仅使用哈希表)

Find pairs of integers from an array having difference of k (using hash tables only)

给定一个包含不同整数值的数组,计算具有差异 k 的整数对的数量。例如,给定数组 {1, 7, 5, 9, 2, 12, 3} 和差值 k = 2。

需要仅使用哈希表的解决方案。

将所有数字放入散列中table。然后,对于每个原始数字 n 检查 n+k 是否在散列 table 中。数一数,你找到了多少条。

这是在 Javascript 中实现的 O(N) 时间的解决方案:

function countSets(values, k) {
  let map1 = new Map();

  values.forEach((value) => {
    map1.set(value);
  });

  let count = 0;
  values.forEach((value) => {
    if(map1.has(value + k))count++;
  });
  
  return count;
}