我的做法是,先更新最大值,再更新最小值,如果最小值得到更新,那就让最大值无效,之后每轮再更新利润
但是我感觉这种思路还是可遇不可求
先定一个策略,我假设今天卖,能赚多少?而我是遍历过来的,前面的最小值我是知道的
class Solution {
public:
int maxProfit(vector<int>& prices) {
int pro = 0, minpri = 1e9;
for(int i: prices) {
pro = max(pro, i-minpri);
minpri = min(minpri, i);
}
return pro;
}
};
确实正确,也确实说不出什么来