数値と値のペアで構成される配列があります。
a = [[2, :foo], [5, :bar], ..., [17, :baz]]
ここで、2 つのペアが同じ数字を持たないと仮定することができ、ペアはそれらの数字の値によってソートされます。この配列に基づいて、常に 内の最小数値と最大数値の間にあるa
数値を渡し、 を超えない最大の数値とペアになっている値を返します。予想される戻り値は次のとおりです。i
a
i
2 # => :foo
4 # => :foo
5 # => :bar
17 # => :baz
これを行う最善の方法は何ですか?ハッシュを使用すると範囲をキーとして扱うのに問題があり、case
ステートメントを使用すると に動的に適用するのが困難になりますa
。