質問: N 個の整数 [N<=10^5] が与えられた場合、差が K [K>0 および K<1e9] である整数のペアの合計を数えます。N 個の整数のそれぞれは 0 より大きく、2^31-1 から少なくとも K 個離れています (すべて 32 ビット整数で行うことができます)。
1 行目には N と K (整数) が含まれます。2 行目には N 個の集合が含まれています。N 個の数はすべて異なることが保証されます。
ハッカーランクからの質問です。質問の解決策を見つけましたが、すべてのサンプル テスト ケースの制限時間を満たしていません。別のアルゴリズムを使用できるかどうかはわかりませんが、アイデアがありません。誰かが私のコードをチェックしてヒントを1つか2つ与えるために少し時間を割いてくれたら本当に感謝します.
temp = input()
temp = temp.split(" ")
N = int(temp[0])
K = int(temp[1])
num_array = input()
num_array = num_array.split(" ")
diff = 0
pairs= 0
i = 0
while(i < N):
num_array[i] = int(num_array[i])
i += 1
while(num_array != []):
j = 0
while(j < (len(num_array)-1)):
diff = abs(num_array[j+1] - num_array[0])
if(diff == K):
pairs += 1
j += 1
del num_array[0]
if(len(num_array) == 1):
break
print(pairs)