Best Time to Buy and Sell Stock

暴力求解法,直接遍历求最大值
class Solution {
public:
int maxProfit(vector<int>& prices)
{
int maxprofit=0;
for(int i=0;i<prices.size();i++)
{
for(int j=i+1;j<prices.size();j++)
{
maxprofit=max(maxprofit,prices[j]-prices[i]);
}
}
return maxprofit;
}
};
但是这种方法时间复杂度过高
所以我们只需要一次遍历
寻找出最低点,在寻出与最低点距离最远的最大值
class Solution {
public:
int maxProfit(vector<int>& prices)
{
int minpoint=prices[0];
int maxprofit=0;
for(int price:prices)
{
maxprofit=max(maxprofit,price-minpoint);
minpoint=min(minpoint,price);
}
return maxprofit;
}
};

浙公网安备 33010602011771号