この宿題の問題について助けが必要です。配列とインデックスを取る関数 Nearest_larger(arr, i) の書き方を教えてください。関数は別のインデックスを返す必要があります。条件は以下です。ありがとう。
This should satisfy:
(a) `arr[i] < arr[j]`, AND
(b) there is no `j2` closer to `i` than `j` where `arr[i] < arr[j]`.
同点の場合 (以下の例を参照)、2 つのインデックスのうち最も古い (最も左にある) インデックスを選択します。の数値
arr
が より大きい場合はarr[i]
、 を返しnil
ます。例:
Nearest_larger([2,3,4,8], 2).should == 3 end
私のコードは次のとおりです。
def nearest_larger(arr, idx)
greater_nums = []
arr.each {|element| greater_nums << element if element>idx}
sorted_greater_nums= greater_nums.sort
nearest_larger = sorted_greater_nums[0]
arr.index(nearest_larger)
end
どうもありがとう。解決策については、以下の投稿を参照してください