是否计划通过购买和出售Python股票来找到最大的利润?
假设我们有一个按时间顺序排列的公司股价列表,我们必须找到可以通过买卖股票获得的最大利润。我们必须在买入之前买入,并且必须在卖出股票后等待一天才能再次买入。
因此,如果输入就像价格=[2、6、9、4、11],那么输出将是11,因为我们可以在2买入,然后在6卖出,等待一天,然后在4买入,然后以11。
为了解决这个问题,我们将按照以下步骤操作:
s:=0
b:=-无穷大
对于价格范围为0的i,
s:=s和(temp+price[i-1])的最大值
温度:=b
b:=b和(s-价格[i])的最大值
如果我不为零,则
返回s和(b+价格的最后一个元素)的最大值
让我们看下面的实现以更好地理解:
示例
class Solution:
def solve(self, prices):
s = 0
b = float("-inf")
for i in range(len(prices)):
temp = b
b = max(b, s - prices[i])
if i:
s = max(s, temp + prices[i - 1])
return max(s, b + prices[-1])
ob = Solution()prices = [2, 6, 9, 4, 11]
print(ob.solve(prices))输入值
[2, 6, 9, 4, 11]
输出结果
11
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短