python股票问题
给定一组股票数据prices,找出合适的买入和卖出的位置,使得结算的结果最大。
例如:给定[2,4,1],当股票价值为2时买入,4时卖出所得的结果最大。若给定为[3,2,1]则结果设定为0
解决思路如下
当前位置为price,[0,当前位置]的最小值为minprice,初始值设定为int(le9),最大值为maxprofit,初始值设定为0。遍历数组,计算出当前的最大值和最小值,值得注意的是最大值可能不是根据全局的最小值得出。
具体代码如下
class Solution(object):
def maxProfit(self, prices):
inf = int(1e9)
minprice = inf
maxprofit = 0
for price in prices:
maxprofit = max(price - minprice, maxprofit)
minprice = min(price, minprice)
return maxprofit