免费搭建微信网站多少钱,门户网站开发步骤,东莞网站制作及推广价格,网站会员推广邀请系统代码随想录算法训练营第四十八天 | leetcode 121. 买卖股票的最佳时机#xff0c;122.买卖股票的最佳时机II121. 买卖股票的最佳时机122.买卖股票的最佳时机II121. 买卖股票的最佳时机
题目#xff1a; 给定一个数组 prices #xff0c;它的第 i 个元素 prices[i] 表示一支…
代码随想录算法训练营第四十八天 | leetcode 121. 买卖股票的最佳时机122.买卖股票的最佳时机II121. 买卖股票的最佳时机122.买卖股票的最佳时机II121. 买卖股票的最佳时机
题目 给定一个数组 prices 它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润返回 0 。
题目链接121. 买卖股票的最佳时机
class Solution:def maxProfit(self, prices: List[int]) - int:if len(prices) 0:return 0dp [[0] * 2 for _ in range(len(prices))]# dp[i][0] 表示第i天持有股票所得现金dp[0][0] -prices[0]# dp[i][1] 表示第i天不持有股票所得现金dp[0][1] 0for i in range(1, len(prices)):dp[i][0] max(dp[i-1][0], -prices[i])dp[i][1] max(dp[i-1][1], prices[i] dp[i-1][0])return dp[-1][1]122.买卖股票的最佳时机II
题目 给定一个数组它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易多次买卖一支股票。 注意你不能同时参与多笔交易你必须在再次购买前出售掉之前的股票。
题目链接122. 买卖股票的最佳时机 II
class Solution:def maxProfit(self, prices: List[int]) - int:dp [[0] * 2 for _ in range(len(prices))]dp[0][0] -prices[0]dp[0][1] 0for i in range(1, len(prices)):dp[i][0] max(dp[i-1][0], dp[i-1][1] - prices[i]) # 持有dp[i][1] max(dp[i-1][1], dp[i-1][0] prices[i]) # 不持有return dp[-1][1]