本文主要是介绍【算法刷题day48】Leetcode:121. 买卖股票的最佳时机、122. 买卖股票的最佳时机 II,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- Leetcode 121. 买卖股票的最佳时机
- 解题思路
- 代码
- 总结
- Leetcode 122. 买卖股票的最佳时机 II
- 解题思路
- 代码
- 总结
草稿图网站
java的Deque
Leetcode 121. 买卖股票的最佳时机
题目:121. 买卖股票的最佳时机
解析:代码随想录解析
解题思路
二维dp数组,
代码
class Solution {public int maxProfit(int[] prices) {int [][]dp = new int[prices.length][2];//第0行表示持有股票时持有的最大现金//第1行表示不持有股票时持有的最大现金dp[0][0] = -prices[0];dp[0][1] = 0;for (int i = 1; i < prices.length; i++) {dp[i][0] = Math.max(dp[i-1][0], - prices[i]);//这次才买dp[i][1] = Math.max(dp[i-1][1], dp[i-1][0] + prices[i]);//卖掉上次持有的和继续持有哪个前更多}return dp[prices.length-1][1];}
}
总结
Leetcode 122. 买卖股票的最佳时机 II
题目:122. 买卖股票的最佳时机 II
解析:代码随想录解析
解题思路
更改一个买入的迭代公式
代码
class Solution {public int maxProfit(int[] prices) {int [][]dp = new int[prices.length][2];//第0行表示持有股票时持有的最大现金//第1行表示不持有股票时持有的最大现金dp[0][0] = -prices[0];dp[0][1] = 0;for (int i = 1; i < prices.length; 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-1][0] + prices[i]);//卖掉上次持有的和继续持有哪个前更多}return dp[prices.length-1][1];}
}
总结
暂无
这篇关于【算法刷题day48】Leetcode:121. 买卖股票的最佳时机、122. 买卖股票的最佳时机 II的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!