gpt4 book ai didi

ruby - 优化此 ruby​​ 代码

转载 作者:数据小太阳 更新时间:2023-10-29 08:21:23 25 4
gpt4 key购买 nike

因此这段代码将计算差值为 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

最佳答案

如果你能给出一些输入和输出的例子就好了,但我认为这是正确的。

require 'set'

def count_diff(numbers, difference)
set = Set.new numbers
set.inject 0 do |count, num|
set.include?(num+difference) ? count+1 : count
end
end


difference = gets.split[1].to_i
numbers = gets.split.map { |num| num.to_i }

puts count_diff(numbers, difference)

关于ruby - 优化此 ruby​​ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6986846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com