一、思路
动态规划
二、解题方法
维护两个变量:一个表示当前最低的股票价格 minPrice
,另一个表示当前最大的利润 maxProfit
。
遍历数组中的每个价格,对于每个价格,更新 minPrice
和 maxProfit
。具体做法是,如果当前价格比 minPrice
还要低,就更新 minPrice
为当前价格,否则计算当前价格卖出时的利润,如果利润大于 maxProfit
,则更新 maxProfit
。
三、code
class Solution {
public:
int maxProfit(vector<int>& prices) {
int min=INT_MAX;//设置最小数值 将这个数设置为比较大的值 用于与其他数比较
int maxProfit=0;//设置最大利润
for(int price:prices)
{
if(price<min)//如果有数值小于设定的最小值则更新最小值
{
min=price;
}
else
{
maxProfit=max(maxProfit,price-min);//比较之前记录的最大利润 maxProfit 和当前价格卖出时的利润,取其中较大的值。
}
}
return maxProfit;
}
};