做法:贪心
时间复杂度:(O(n))
思路
- 这题实际上是在求(max(a[i]-a[j])(i>=j))
- 可利用贪心的思路维护(a[j])在(i>=j)范围内最小即可,时间复杂度从(O(n^2))将为(O(n))
代码
class Solution {
public:
/**
*
* @param prices int整型vector
* @return int整型
*/
int maxProfit(vector<int>& prices) {
int ans=0,t=0x3f3f3f3f;
for(auto x:prices){
t=min(x,t);
ans=max(ans,x-t);
}
return ans;
}
};