特定の違いがある数字のリストでペアの数を見つけようとしています。言って、リストで
1 2 3 4 5
このシーケンスには 3 つのペアがあり、差が '2' であるため、数字 '3' を出力したいと思います。ただし、私のコードは非常に遅いです。すべてのペアを二重にカウントするため、答えを得るためにソリューションを 2 で割る必要があります。二重カウントせずにこの同じタスクを達成する方法はありますか? あなたが持っているかもしれない洞察に感謝します。ありがとう!コードは下に印刷されています
import sys
def main():
solutions=0
pairs=[]
for i in xrange(len(numbers)):
for j in xrange(len(numbers)):
if i!=j:
pairs.append([numbers[i], numbers[j]])
for pair in pairs:
if abs(pair[0]-pair[1])==k:
solutions+=1
else:
continue
return solutions/2
if __name__ == '__main__':
lines=sys.stdin.readlines()
n,k=map(int, lines[0].strip().split())
numbers=map(int, lines[1].strip().split())
print main()