我正在做一個關于theodinproject ruby?? 課程的專案。我將實施一種方法,該方法接受一系列股票價格并回傳最佳買入日期和最佳賣出日期。每個價格(陣列元素)的索引是它的日期。我想解決這個問題的方法是首先將陣列復制到一個新的系結,然后映射到原始陣列并在其中映射到復制的陣列并在回圈完成后洗掉第一個元素,即,為了解決這種情況一個人不能在第 10 天買入并在第 1 天賣出。
這是我寫的代碼:
def stock_picker(stock_price)
#copying the array into a new binding
stock_array = []
stock_array.replace(stock_price)
stock_price.map do |buy|
stock_array.map do |sell|
sell - buy
end
#deleting the first element
stock_array.shift
end
end
array = stock_picker([17,3,6,9,15,8,6,1,10])
這是我收到的結果:
[17, 3, 6, 9, 15, 8, 6, 1, 10]
這就是我期望得到的:
[[0, -14, -11, -8, -2, -9, -11, -16, -7], [0, 3, 6, 12, 5, 3, -2, 7], [0, 3, 9, 2, 0, -5, 4], [0, 6, -1, -3, -8, 1], [0, -7, -9, -14, -5], [0, -2, -7, 2], [0, -5, 4], [0, 9], [0]]
uj5u.com熱心網友回復:
首先,我不明白你為什么要每次都移動第一個元素。但這里有一些說明可以幫助您:
在一個
.map塊中,最后一個值被回傳。在這種情況下是stock_array.shift. 這就是為什么你得到你的初始陣列的原因。因為它遍歷陣列并且每次都回傳第一個元素但是因為每次你移動陣列時你只是去下一個值,下一個等等......stock_price您可以簡單地復制它,而不是擁有一個新陣列并將其替換為stock_price.dup
你會有這樣的事情:
def stock_picker(stock_price)
stock_price.dup.map do |buy|
res = stock_price.map do |sell|
sell - buy
end
stock_price.shift
res
end
end
但是同樣,上面的例子回傳了你想要的,我不明白為什么......
uj5u.com熱心網友回復:
這是獲得預期輸出的簡單回圈方法:
代碼:
array = [17,3,6,9,15,8,6,1,10]
arr = [17,3,6,9,15,8,6,1,10]
answer = []
for i in array
temp = []
arr.each do |x|
temp.push(x - i)
end
arr.shift
answer.push(temp)
end
print answer
會給
輸出:
[[0, -14, -11, -8, -2, -9, -11, -16, -7], [0, 3, 6, 12, 5, 3, -2, 7], [0, 3, 9, 2, 0, -5, 4], [0, 6, -1, -3, -8, 1], [0, -7, -9, -14, -5], [0, -2, -7, 2], [0, -5, 4], [0, 9], [0]]
uj5u.com熱心網友回復:
嘗試以下
def stock_picker(stock_price)
#copying the array into a new binding
stock_array = []
stock_array.replace(stock_price)
stock_price.map do |buy|
result = stock_array.map {|sell| sell - buy }
stock_array.shift
p result
end
end
array = stock_picker([17,3,6,9,15,8,6,1,10])
輸出
[0, -14, -11, -8, -2, -9, -11, -16, -7]
[0, 3, 6, 12, 5, 3, -2, 7]
[0, 3, 9, 2, 0, -5, 4]
[0, 6, -1, -3, -8, 1]
[0, -7, -9, -14, -5]
[0, -2, -7, 2]
[0, -5, 4]
[0, 9]
[0]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/525371.html
標籤:轨道上的红宝石红宝石ruby-on-rails-3ruby-on-rails-4红宝石
上一篇:Navigator共享在macos的chrome桌面上不起作用,還有其他選擇嗎?
下一篇:反應原生視頻無法播放m3u8檔案
