Я пытаюсь написать скрипт, который подсчитывает количество «различных» (или уникальных) пар в моем массиве, которые имеют разность, равную значению K.Например, допустим, у меня есть список [a, a, b, c].Мои отличные пары будут тогда: (a, b) и (a, c) и (b, c) (Distinct - истина, если хотя бы один элемент пары отсутствует в другой паре чисел.)
Для разницы моя пара, например (a, b), действительна, только если a + K = b.
Я написал два следующих кода, но я не уверен насчет временной сложности первого и второго, я просто не мог придумать что-то меньшее, занимающее память.
Спасибо!
1-й:
def count(arr, k):
a = set(arr)
return sum(x+k in a for x in a)
2-й:
def pairs(k, arr):
setA = set(arr)
count = 0
for x in list(setA):
if (x-k) in setA:
count = count +1
return (count)