Fork me on GitHub

牛客题霸--买卖股票的最好时机

做法:贪心

时间复杂度:\(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;
    }
};
posted @ 2020-11-25 13:35  熠丶  阅读(107)  评论(0编辑  收藏  举报