牛客题霸--买卖股票的最好时机
做法:贪心
时间复杂度:\(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;
}
};