典型的DP问题,第n个状态是max(第n-1个状态,第n个元素-min(n-1))。
public:
int maxProfit(vector<int>& prices) {
if(prices.size() <= 1) return 0;
int min = prices[0], max = 0, m = 0;
for(size_t i = 1; i < prices.size(); i++){
m = prices[i] - min;
if(m >= 0) max = max > m? max:m;
min = prices[i] > min?min:prices[i];
}
return max;
}
};
本文探讨了典型的动态规划(DP)问题,旨在通过计算找到股票买卖的最大利润。核心算法利用了DP思想,通过比较当前价格与历史最低价之差,不断更新最大利润。代码示例清晰展示了这一过程。
836

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



