gpt4 book ai didi

ruby - 有没有更好的方法来查找数组中最小元素的位置?

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

现在我有

def min(array,starting,ending)
minimum = starting
for i in starting+1 ..ending
if array[i]<array[minimum]
minimum = i
end
end

return minimum
end

Ruby 有更好的“实现”吗?这个看起来仍然很c-ish。谢谢。

最佳答案

如果想找到最小元素的索引,可以使用Enumerable#enum_for来获取项目索引对的数组,并找到具有 Enumerable#min 的项的最小值(这也是原始数组的最小值)。

% irb
irb> require 'enumerator'
#=> true
irb> array = %w{ the quick brown fox jumped over the lazy dog }
#=> ["the", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog"]
irb> array.enum_for(:each_with_index).min
#=> ["brown", 2]

如果你想将它绑定(bind)到特定的数组索引:

irb> start = 3
#=> 3
irb> stop = 7
#=> 7
irb> array[start..stop].enum_for(:each_with_index).min
#=> ["fox", 0]
irb> array[start..stop].enum_for(:each_with_index).min.last + start
#=> 3

关于ruby - 有没有更好的方法来查找数组中最小元素的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/855693/

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