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

买卖股票的最好时机

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

  1. 从第一个数开始遍历数组
  2. 存储从第一个数到当前的最大值和最小值
  3. 如果当前值比前面区间最小值还小,这可能是买入时间
  4. 如果当前值比前面区间最大值还大,这应该是更新后的卖出时间
  5. 用区间内最大值减去最小值,更新利润
class Solution {
public:
    /**
     * 
     * @param prices int整型vector 
     * @return int整型
     */
    int maxProfit(vector<int>& prices) {
        // write code here
        int s[]={prices[0],prices[0]};//存储0-0的最大值和最小值
        int res=0;
        for(int i=0;i<prices.size();i++){
            if(prices[i]<s[0]){
                //更新0-i区间最小值
                s[0]=prices[i];
            }
            else if(prices[i]>s[0]){
                //更新0-i区间最大值
                s[1]=prices[i];
                res=res>s[1]-s[0]?res:s[1]-s[0];
            }
        }
        return res;
    }
};
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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