买卖股票的最佳时机
题目
题解
贪心
背包解法(这个我还没理解透。。。。)
2021.12.6 贪心
这个贪心我看题解感觉容易理解,但是看背包的理论的真觉得脑子不够用。但是我想了下,为什么假设的历史最低价格都要设为很大的值?后来,想了下,我觉得是因为我们要找当日价格和历史最低价之间取min值,因此历史最低价不能定最小值,也不能设定为0,要不然卖出的价格不会更新了,一直都是我们设定的历史最低价。
class Solution {
public:
int maxProfit(vector<int>& prices) {
int minprice = INT_MAX;
int maxprofit = 0;
for (int i=0;i<prices.size();i++){
minprice = min(minprice, prices[i]);
maxprofit = max(maxprofit, prices[i] - minprice);
}
return maxprofit;
}
};