【发布时间】:2019-08-14 16:33:36
【问题描述】:
我正在尝试做一种选股方法,它可以接收一系列股票价格,每个假设日都有一个。它应该返回一对代表最佳买入日和最佳卖出日的日期。天数从 0 开始。
def stock_picker stocks
pair = []
if stocks.size < 2
return "Please enter an array with a valid number of stocks"
else
buy_day = 0
sell_day = 0
profit = 0
stocks.each_with_index do |buy, index|
i = index
while (i < stocks[index..-1].size)
if ((buy - stocks[i]) > profit)
profit = buy - stocks[i]
buy_day = stocks.index(buy)
sell_day = i
end
i+= 1
end
end
pair = [buy_day,sell_day]
return pair.inspect
end
end
stock_picker([17,3,6,9,15,8,6,1,10])
它应该返回 [1,4] 而不是 [0,7]
【问题讨论】:
-
看起来您的解决方案正在弄乱一个标志,因为您收到了最坏场景的正确值。 旁注:你不需要在方法的最后一行使用
return。
标签: ruby