解法一
双循环暴力破解 可能会导致超时
class Solution {
public:
int maxProfit(vector<int>& prices) {
int ans = 0;
for (int i = 0; i < prices.size(); i++)
{
for (int j = i+1; j < prices.size(); j++)
{
ans=max(ans,prices[j]-prices[i]);
}
}
return ans;
}
};
解法二
单循环,找到历史最低点,以及相对的历史最高的差价
//单次循环 记录历史最低值
class Solution {
public:
int maxProfit(vector<int>& prices) {
int minprice=1e9,maxprice=0;
for (int i = 0; i < prices.size(); i++)
{
maxprice=max(maxprice,prices[i]-minprice);
minprice= min(minprice,prices[i]);
}
return maxprice;
}
};