我正在尝试编写一个脚本,该脚本计算我的数组中“差异”(或唯一)对的数量,其差值等于K。例如,假设我有一个[a,a,b,c]列表。这样我的不同对将是:(a,b)以及(a,c)和(b,c)(如果一对中的至少一个元素不在另一对数字中,则为真。)
为此,例如,我的一对(a,b)仅在a + K = b时有效。
我编写了以下两个代码,但是我不确定第一个代码的时间复杂度,而对于第二个代码,我只是想不到占用更少内存的东西。
谢谢!
第一名:
def count(arr, k):
a = set(arr)
return sum(x+k in a for x in a)
第二名:
def pairs(k, arr):
setA = set(arr)
count = 0
for x in list(setA):
if (x-k) in setA:
count = count +1
return (count)