题解 | #买卖股票的最好时机(一)#

买卖股票的最好时机(一)

https://www.nowcoder.com/practice/64b4262d4e6d4f6181cd45446a5821ec

class Solution {
public:
    /**
     * 
     * @param prices int整型vector 
     * @return int整型
     */
    // 自己写 O(n) O(1) 
    // dp数组记录 当前天为止的最大利润
    int maxProfit(vector<int>& prices) {
        // write code here
        int n = prices.size();

        if(n<2)
        {
            return 0;
        }

        if(n==2)
        {
            int ans = prices[1] - prices[0];

            return ans>0 ? ans : 0;
        }

        int minp = 10001; // 一直维护前面的最小值
        minp = min(prices[0], prices[1]);
        int pre = (prices[1] - prices[0])>0 ? (prices[1] - prices[0]) : 0;
        int cur = 0, ans = 0;
        for(int i=2; i<n; ++i)
        {
            int a  = prices[i] - minp;
            cur = max(pre, a); // 对比 今天不卖出 和 今天卖出的情况
            // 更新
            pre = cur;
            minp = min(minp, prices[i]);

            ans = max(ans, cur);


        }

        return ans;
    }
};

自己的做法

全部评论

相关推荐

07-18 18:09
门头沟学院 Java
点赞 评论 收藏
分享
门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务