• 题目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; 

        } 

    };

  • 相关阅读:
    java中如何高效的判断数组中是否包含某个元素---
    反射--
    Json----
    Ajax学习(1)
    Jdbc学习---
    java---内部类
    java中的多态
    spring是什么
    quartz的配置文件
    浅谈Job&JobDetail
  • 原文地址:https://www.cnblogs.com/GodZe/p/6749771.html
Copyright © 2020-2023  润新知