最近在刷leecode,碰到了这道题——计算股票最大利润
题目具体为:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?
我的想法:进行循环,找到当前值后面的最大值,随后进行比较。过程还是比较清晰的。
接下来就是我的代码:
def maxProfit(self, prices: List[int]):
profit = []
for i in range(len(prices)):
b=max(prices[i:])
if prices[i]<b:
c= b-prices[i]
profit.append(c)
else:
profit.append(0)
return max((profit),default = 0)
大功告成!!!撒花
事实上,我在写的时候遇到了这样的一个问题。我最开始的时候,代码的最后一行写的是return max(profit),尽管执行通过了,但是在提交的时候,却一直报错。执行信息是:ValueError: max() arg is an empty sequence。 原因是max() 函数中,传入的可迭代对象可能为空时,必须指定参数default,用来返回输出。
一点点小小的经验希望和大家分享。