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

Posted 轻风舞动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode] 121. 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.

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 买卖股票的最佳时间的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode OJ 121. Best Time to Buy and Sell Stock

Leetcode 121 Best Time to Buy and Sell Stock

LeetCode 121: Best Time to Buy and Sell Stock

LeetCode 121 Best Time to Buy and Sell Stock

Leetcode121. Best Time to Buy and Sell Stock

121. Best Time to Buy and Sell Stock leetcode解题笔记