题目2:买卖股票的最佳时机

描述:假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。

样例

给出一个数组样例 [3,2,3,1,2], 返回 1

class Solution { 

public: 

    /**

     * @param prices: Given an integer array

     * @return: Maximum profit

     */ 

    int maxProfit(vector<int> &prices) { 

        // write your code here 

        int n = prices.size(); 

        if (n <= 1) return 0; 

        vector<int> trans; 

        for (int i = 1; i <= n; i++) 

            trans.push_back(prices[i] - prices[i-1]); 

        int imax = 0, res = 0; 

        for(int i = 0; i < n-1; i++){ 

            imax += trans[i]; 

            if (imax > res) res = imax; 

            else if(imax < 0) imax = 0; 

        } 

        return res; 

    } 

};

原文地址:https://www.cnblogs.com/GodZe/p/6749771.html