我知道Ruby中的Enumerable库有一个max函数。
但是,我正在试图弄清楚如何编写我自己的max方法,其中计算出数组中的最大数字。
我该怎么做?我真的很茫然,因为当我谷歌时,我所得到的只是最大功能本身。
任何帮助/建议都会有所帮助!
答案 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) -