要找一个值,减去前面最小的,那么就得到最大利润了
class Solution {
public:
int maxProfit(vector<int>& prices) {
if(!prices.size()) return 0;
int minval = prices[0];
int res = 0;
for(int i = 1; i < prices.size(); i++)
{
int tmp = prices[i];
prices[i] = tmp - minval;
minval = min(minval, tmp);
res = max(res, prices[i]);
}
return res;
}
};
第二次写题
class Solution {
public:
int maxProfit(vector<int>& prices) {
if(!prices.size()) return 0;
vector<int> res(prices.size());
int minval = prices[0];
int maxval = INT_MIN;
for(int i = 0; i < prices.size(); i++)
{
res[i] = prices[i] - minval;
minval = min(minval, prices[i]);
maxval = max(maxval, res[i]);
}
return maxval;
}
};