题目大意:给出股票价格数组,只允许买卖一次,求最大收益
分析:股票问题采用动态规划。但是这道入门题只允许买卖一次,有更简单的方法——一次遍历:遍历数组时维护当前的最低点,每一天都计算当天与当前最低点的差值,这就是收益,取收益最大值即可。
代码:
class Solution {
public:
int maxProfit(vector<int>& prices) {
int minPrice = 0x3f3f3f3f,ans = 0;
for(int price : prices){
ans = max(ans,price - minPrice);
minPrice = min(minPrice,price);
}
return ans;
}
};