ruby – 有没有更好的方法来查找数组中最小元素的位置?
发布时间:2020-12-17 01:23:40 所属栏目:百科 来源:网络整理
导读:现在我有 def min(array,starting,ending) minimum = starting for i in starting+1 ..ending if array[i]array[minimum] minimum = i end endreturn minimumend Ruby中有更好的“实现”吗?这个仍然看起来像c-ish. 谢谢. 解决方法 如果要查找最小元素的索引
现在我有
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] 如果要将其绑定到特定的数组索引: 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |