首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从差异为k的数组中查找整数对(仅使用哈希表)

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

Stack Overflow用户
提问于 2018-05-05 06:09:27
回答 3查看 425关注 0票数 1

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-05-05 06:14:06

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

票数 0
EN

Stack Overflow用户

发布于 2022-03-17 03:58:48

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

代码语言:javascript
运行
复制
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;
}
票数 0
EN

Stack Overflow用户

发布于 2022-11-24 01:59:13

100%正确python解决方案

方法

  1. 计算每个num中的频率
  2. 计数器返回一个字典 of frequencies,用于在num中找到的每个数字。
  3. 循环&对freq中所有可能对的匹配进行求和。
  4. 打印计数器c

复杂性

时间复杂度:O(n)

空间复杂性:O(n)

代码语言:javascript
运行
复制
from collections import Counter

nums = [1, 7, 5, 9, 2, 12, 3]
k = 2

freq = Counter(nums)

c = 0      
[c := c + freq[num + k] for num in nums]

print(c)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50186307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档