3

複雑なオブジェクトの配列、それぞれを Comparable 値にマッピングするためのアルゴリズム、およびそのような最小値を見つけたいという欲求が与えられた場合、これを 1 回のパスで行う組み込みライブラリ メソッドはありますか?

効果的だが完全に効率的ではないソリューション:

# Iterates through the array twice
min = objects.map{ |o| make_number o }.min

# Calls make_number one time more than is necessary
min = make_number( objects.min_by{ |o| make_number o } )

効率的だが冗長な解決策:

min = nil
objects.each{ |o| n=make_number(o); min=n if !min || n<min }
4

1 に答える 1