题目描述
想象我们平时买股票,肯定希望是在最低点买入,最高点卖出的,那么我们就可以遍历一下数组,要先记录最地位,也就是股票最低的时候你需要买入~那么什么时候卖出呢?我们假设一共有n天,第一天位最低为,那么你就要分别记录每天卖出的价格,然后去除最大的利润~最低买入价格位min,那么以后每天的价格就是n[price]-min的价格,分别记录他们~~我们首先设一个最小值。和一个最大值~
int maxProfit(vector<int>& prices) {
int inf = 1e9;
//先设置一个最小买入的值,开始设置大一些,因为我们希望
//以后每次买入的价格都比这个值小~利润是每次都比原来的利润大~
int minprice = inf, maxprofit = 0;
//
for (int price: prices) {
//最大利润即为每天的价格减去最开始设定的价格~
maxprofit = max(maxprofit, price - minprice);