欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 刷题之买股票的最佳时机(leetcode)

刷题之买股票的最佳时机(leetcode)

2025/4/19 3:52:47 来源:https://blog.csdn.net/qq_42538417/article/details/140230120  浏览:    关键词:刷题之买股票的最佳时机(leetcode)

买股票的最佳时机

在这里插入图片描述
动态规划入门题。

最简单的模拟式解法:

class Solution {
public:int maxProfit(vector<int>& prices) {//也可以换一种思路,因为只交易一次,那么找出股票最便宜的时候买入,最贵的时候卖出,最大利润为(该天的股价-前面天数中最小的股价)int profit=0;int cost=prices[0];for(int i=1;i<prices.size();i++){profit=max(prices[i]-cost,profit);cost=min(prices[i],cost);}return profit;}
};

动态规划解法:

class Solution {
public:int maxProfit(vector<int>& prices) {vector<vector<int>>dp(prices.size(),vector<int>(2,0));dp[0][0]=0;dp[0][1]=-prices[0];for(int i=1;i<prices.size();i++){//只能交一次易//第i天没有持有股票的最大利润为前一天没有持有股票,并且第i天也没有买入;第i-1天有,但今天卖出dp[i][0]=max(dp[i-1][0],dp[i-1][1]+prices[i]);//第i天持有股票的最大利润是:前一天有股票,第i天没有卖出,或者第i天买入dp[i][1]=max(dp[i-1][1],-prices[i]);}return dp[prices.size()-1][0];}
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词