给定一个不同整数值的数组,计算具有不同k的整数对数,例如,给定数组{1、7、5、9、2、12、3}和差k= 2。
只需要使用哈希表的解决方案。
发布于 2018-05-05 06:14:06
将所有数字放入哈希表中。然后,对于每个原始数字,n检查n+k是否在哈希表中。数一数,你找到了多少次。
发布于 2022-03-17 03:58:48
以下是在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;
}发布于 2022-11-24 01:59:13
100%正确python解决方案
方法
复杂性
时间复杂度:O(n)
空间复杂性:O(n)
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)https://stackoverflow.com/questions/50186307
复制相似问题