假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?
dp[i] = max(dp[i - 1], prices[i] - min(prices[0:i]))
int maxProfit(vector<int>& prices) {
if(prices.size() < 2)
return 0;
vector<int> dp(prices.size(), 0);
dp[0] = 0;
int minPrices = prices[0];
for(int i = 1; i < prices.size(); i++) {
minPrices = min(minPrices, prices[i]);
dp[i] = max(dp[i - 1], prices[i] - minPrices);
}
return dp[prices.size() - 1];
}


本文介绍了一种计算股票交易最大利润的动态规划算法。通过维护一个最小价格和一个动态规划数组,可以有效地找出在给定股票价格序列中,进行一次买卖所能获得的最大利润。
1125

被折叠的 条评论
为什么被折叠?



