欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > 力扣-数组-121 买卖股票的最佳时机

力扣-数组-121 买卖股票的最佳时机

2025/11/7 19:32:15 来源:https://blog.csdn.net/qq_45964225/article/details/145051094  浏览:    关键词:力扣-数组-121 买卖股票的最佳时机

代码

超内存了

class Solution {
public:int maxProfit(vector<int>& prices) {int dp[prices.size()][prices.size()];for(int i = 0;i < prices.size();i++){for(int j = i; j<prices.size();j++){if(i == j){dp[i][j] = 0;}else{dp[i][j] = max( max( max(0, prices[j]-prices[i]), dp[i][j-1]), prices[j]-prices[i+1]);}}}int res = 0;for(int i = 0; i< prices.size();i++){res = max(res, dp[i][prices.size()-1]);}return res;}
};

二维变一维,不超内存,超时间了

class Solution {
public:int maxProfit(vector<int>& prices) {int dp[prices.size()]; // i  ——  size()-1 最大的那一个 for(int i = 0;i < prices.size();i++){int last = 0;for(int j = i; j<prices.size();j++){if(i == j){last = 0;}else{int temp = max( max( max(0, prices[j]-prices[i]), last), prices[j]-prices[i+1]);last = temp;}}dp[i] = last;}int res = 0;for(int i = 0; i< prices.size();i++){res = max(res, dp[i]);}return res;}
};

看了大佬的题解,才明白跟dp没啥关系,主要应用贪心了

最后附上基于此思想的代码

class Solution {
public:int maxProfit(vector<int>& prices) {int minPrice = prices[0];int profit = 0;for(int i = 1; i < prices.size(); i++) {profit = max(profit , prices[i] - minPrice);if(prices[i] < minPrice){minPrice = prices[i];}}return profit;}
};

版权声明:

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

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

热搜词