我知道在Ruby中有一個來自Enumerable庫的最大函數。如何編寫我自己的最大功能
但是,我試圖弄清楚如何編寫我自己的最大的方法,其中數組中的最大數字被找出。
我該怎麼做?我真的很失落,因爲當我Google時,我所得到的只是最大功能本身。
任何幫助/建議將有所幫助!
我知道在Ruby中有一個來自Enumerable庫的最大函數。如何編寫我自己的最大功能
但是,我試圖弄清楚如何編寫我自己的最大的方法,其中數組中的最大數字被找出。
我該怎麼做?我真的很失落,因爲當我Google時,我所得到的只是最大功能本身。
任何幫助/建議將有所幫助!
另一種幼稚的做法是 -
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拍攝) -
謝謝!這確實有幫助,因爲它不依賴於其他功能,並且我可以進一步分解它以嘗試更多地理解它。 – user273072545345 2014-10-03 20:45:37
您有兩種方法:Enumerable#each
(必要)或Enumerable#reduce
(通常功能,取決於您如何使用它)。我更喜歡功能性的解決方案,所以我會寫:
module Enumerable
def my_max
reduce { |current_max, x| x > current_max ? x : current_max }
end
end
謝謝!我很欣賞這是看待這種方法的另一種方式。而且還提出了強制性和功能性的做事方式的問題,因爲我甚至沒有這樣做。 – user273072545345 2014-10-03 20:47:44
你想要'array.sort.last'嗎? – 2014-10-03 18:20:05