挑戦の準備をするために、ルビーに関する「簡単な」質問の束を解こうとしています。しかし、それらは私にとって非常に簡単ではありません:P.
問題の状態 -- >
# Write a function, `nearest_larger(arr, i)` which takes an array and an
# index. The function should return another index, `j`: this should
# satisfy:
#
# (a) `arr[i] < arr[j]`, AND
# (b) there is no `j2` closer to `i` than `j` where `arr[i] < arr[j]`.
#
答えの年は見たくないので、これまでの知識をつぎのコードに注ぎ込みました --
def nearest_larger(arr, i)
j = 0
k = i+1
larger_hash = {}
while j < i
larger_hash[arr[j]] = j if arr[i] < arr[j]
j +=1
end
while k < (arr.count - 1) do
larger_hash[arr[k]] = k if arr[i] < arr[k]
k+=1
end
max_value = larger_hash.keys.max
end
nearest_larger([3, 5, 6, 14, 20, 18], 2)
この質問に答える美しく簡単な方法があると確信していますが、残念ながら、私のソリューションが NoMethodError を吐き出す理由はわかりません。
どんな助けでも大歓迎です