zoukankan      html  css  js  c++  java
  • 【LeetCode】121. Best Time to Buy and Sell Stock

    Best Time to Buy and Sell Stock

    Say you have an array for which the ith element is the price of a given stock on day i.

    If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit.

    记ret为收益(卖出-买入)

    关键点就在于,随着prices的遍历,怎样更新ret?

    1、如果当前遇到的元素比curMin小,就重新更新curMin

    2、计算prices[i]与curMin的差值,并(可能需要)更新ret

    上述顺序不可变,不然会产生收益为负的情况。

    class Solution {
    public:
        int maxProfit(vector<int> &prices) {
            int m = prices.size();
            if(m == 0)
                return 0;
                
            int curMin = prices[0];
            int ret = 0;
            for(int i = 1; i < m; i ++)
            {
                curMin = min(curMin, prices[i]);
                ret = max(ret, prices[i]-curMin);
            }
            return ret;
        }
    };

  • 相关阅读:
    Spark学习--SparkCore03
    2D特效和3D特效
    CSS3选择器在HTML5中的使用
    HTML5中表单中新增加元素
    HTML5简介
    机器学习系列:
    机器学习系列:
    机器学习系列:
    机器学习系列:
    机器学习系列:
  • 原文地址:https://www.cnblogs.com/ganganloveu/p/3721162.html
Copyright © 2011-2022 走看看