如何编写自己的max函数

时间:2014-10-03 18:18:52

标签: ruby methods max

我知道Ruby中的Enumerable库有一个max函数。

但是,我正在试图弄清楚如何编写我自己的max方法,其中计算出数组中的最大数字。

我该怎么做?我真的很茫然,因为当我谷歌时,我所得到的只是最大功能本身。

任何帮助/建议都会有所帮助!

2 个答案:

答案 0 :(得分:2)

您有两种方法:Enumerable#each(命令式)或Enumerable#reduce(通常是功能性的,取决于您如何使用它)。我更喜欢功能性解决方案,所以我写道:

module Enumerable
  def my_max
    reduce { |current_max, x| x > current_max ? x : current_max }
  end
end

答案 1 :(得分:2)

另一种天真的方法是 -

list = [3,4,2,5,6,7,8,2,5,1,4,4,6]

def maximum(list) 
  len = list.size - 1
  maximum = list[0]

  for i in 1..len
    if maximum < list[i]
        maximum = list[i]
    end
  end
  maximum
end

puts maximum(list) 
# >> 8

以下是图形说明(取自此link) -

enter image description here