本文主要是介绍【算法刷题day50】Leetcode:309. 买卖股票的最佳时机含冷冻期、714. 买卖股票的最佳时机含手续费,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- Leetcode 309. 买卖股票的最佳时机含冷冻期
- 解题思路
- 代码
- 总结
- Leetcode 714. 买卖股票的最佳时机含手续费
- 解题思路
- 代码
- 总结
草稿图网站
java的Deque
Leetcode 309. 买卖股票的最佳时机含冷冻期
题目:309. 买卖股票的最佳时机含冷冻期
解析:代码随想录解析
解题思路
分为四种情况:持有(购买);保持卖出;今天卖出;冷冻期
代码
class Solution {public int maxProfit(int[] prices) {//持有股票;保持卖出股票;卖出股票;冷冻期int n = prices.length;int [][]dp = new int[n][4];dp[0][0] = -prices[0];//持股//dp[0][1] 保持卖出//dp[0][2] 今天卖出//dp[0][3] 冷冻期for (int i = 1; i < n; i++) {dp[i][0] = Math.max(dp[i-1][0], Math.max(dp[i-1][1], dp[i-1][3]) - prices[i]);//除了今天卖出其他的最大值dp[i][1] = Math.max(dp[i-1][1], dp[i-1][3]);//冷冻期和保持卖出最大值dp[i][2] = dp[i-1][0] + prices[i];//今天卖出dp[i][3] = dp[i-1][2];//和昨天卖出保持一致}return Math.max(dp[n-1][1], Math.max(dp[n-1][2], dp[n-1][3]));}
}
总结
暂无
Leetcode 714. 买卖股票的最佳时机含手续费
题目:714. 买卖股票的最佳时机含手续费
解析:代码随想录解析
解题思路
比2多一个手续费,其他一致
代码
class Solution {public int maxProfit(int[] prices, int fee) {int n = prices.length;int [][]dp = new int[n][2];dp[0][0] = -prices[0];for (int i = 1; i < n; i++) {dp[i][0] = Math.max(dp[i-1][0], dp[i-1][1] -prices[i]);dp[i][1] = Math.max(dp[i-1][1], dp[i][0] + prices[i] - fee);}return dp[n-1][1];}
}
总结
暂无
这篇关于【算法刷题day50】Leetcode:309. 买卖股票的最佳时机含冷冻期、714. 买卖股票的最佳时机含手续费的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!