加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读