思路
因为只有唯一一次的交易次数,所以肯定要在前面选一个小的,在后面选一个大的。
用
m
i
n
x
minx
minx 维护当前
1
→
i
−
1
1\to i-1
1→i−1 的最小值,然后就直接更新答案就可以了。
代码
class Solution {
public:
int maxProfit(vector<int>& a) {
int minx=0x3fffffff,ans=0;
for(int i=0;i<a.size();i++){
ans=max(ans,a[i]-minx);
minx=min(minx,a[i]);
}
return ans;
}
};