码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode] 121. Best Time to Buy and Sell Stock 买卖股票的最佳时间

时间:2018-03-09 10:39:20      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:com   min   变量   value   elf   array   最小   卖出   股票   

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.

Example 1:

Input: [7, 1, 5, 3, 6, 4]
Output: 5

max. difference = 6-1 = 5 (not 7-1 = 6, as selling price needs to be larger than buying price)

 Example 2:

Input: [7, 6, 4, 3, 1]
Output: 0

In this case, no transaction is done, i.e. max profit = 0.

给一个某股票价格的数组,只允许一次买进股票和卖出股票,返回能获得的最大利润。

用一个变量min_price记录目前价格曾出现过的最小价格,用另一个变量max_profit记录到目前价格能获得的最大利润,遍历数组,更新两个变量的值,直到循环结束,返回max_profit。

Java:

public class Solution {
    public int maxProfit(int[] prices) {
        int res = 0, buy = Integer.MAX_VALUE;
        for (int price : prices) {
            buy = Math.min(buy, price);
            res = Math.max(res, price - buy);
        }
        return res;
    }
}  

Python:

class Solution:
    # @param prices, a list of integer
    # @return an integer
    def maxProfit(self, prices):
        max_profit, min_price = 0, float("inf")
        for price in prices:
            min_price = min(min_price, price)
            max_profit = max(max_profit, price - min_price)  
        return max_profit

C++:

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int res = 0, buy = INT_MAX;
        for (int price : prices) {
            buy = min(buy, price);
            res = max(res, price - buy);
        }
        return res;
    }
};  

 

类似题目:

 

[LeetCode] 121. Best Time to Buy and Sell Stock 买卖股票的最佳时间

标签:com   min   变量   value   elf   array   最小   卖出   股票   

原文地址:https://www.cnblogs.com/lightwindy/p/8531910.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!