爲了準備挑戰,我試圖解決一堆關於ruby的'簡單'問題。但是,他們對我來說不是很容易:P。未定義的方法`nearest_larger'爲主:對象
問題國家 - >
# 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。
任何幫助,不勝感激
我沒有得到一個'NoMethodError',而是一些其他的錯誤。例如,在像這個'large_hash {arr [j]}'這樣的散列中尋址值是不正確的。你必須使用方括號。然後你有「無法比較零與fixnum錯誤」 –
呃,固定,現在我在你所在的位置,無法與fixnum比較零。感謝您的幫助Sergio –
您還應該將循環更改爲'for for(in((i + 1)..(arr.count-1))do' – Santhosh