所以这段代码将计算其差值为K的数字对的总数。这是天真的方法,我需要优化它。建议?优化这个红宝石代码
test = $stdin.readlines
input = test[0].split(" ")
numbers = test[1].split(" ")
N = input[0]
K = input[1]
count = 0
for i in numbers
current = i.to_i
numbers.shift
for j in numbers
difference = (j.to_i - current).abs
if (difference == K)
count += 1
end
end
end
puts count
'N'有用吗?如果有另一部分代码我们看不到,你能否删除我们不需要的部分? XD – JMichelB
对不起N是数字个数 – Evan
'number.shift',是不是让循环保持不变?如果你有[1,2,3,4],不会'I'只取1和3作为值吗? – JMichelB