Я получаю «Ошибка памяти» при запуске моего кода [Python] - сложность времени - PullRequest
0 голосов
/ 19 марта 2019

Я пытаюсь написать скрипт, который подсчитывает количество «различных» (или уникальных) пар в моем массиве, которые имеют разность, равную значению 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)
...