LeetCode Best Time to Buy and Sell Stock

LeetCode解题之Best Time to Buy and Sell Stock

原题

给定每天的股票价格,如果只允许进行一轮交易,也就是买进一次和卖出一次,求所能获得的最大的利润。

注意点:

例子:

输入: prices = [2, 4, 6, 1, 3, 8, 3]

输出: 7(在价格为1的时候买入,价格为8时卖出)

解题思路

从前往后遍历数列,把当前出现过的最低价格作为买入价格,并计算以当前价格出售的收益,整个遍历过程中,出现过的最大收益就是题目所求。

AC源码

class Solution(object):
    def maxProfit(self, prices):
        """ :type prices: List[int] :rtype: int """
        if len(prices) < 2:
            return 0
        min_price = prices[0]
        max_profit = 0
        for price in prices:
            if price < min_price:
                min_price = price
            if price - min_price > max_profit:
                max_profit = price - min_price
        return max_profit


if __name__ == "__main__":
    assert Solution().maxProfit([2, 4, 6, 1, 3, 8, 3]) == 7

欢迎查看我的Github (https://github.com/gavinfish/LeetCode-Python) 来获得相关源码。

你可能感兴趣的:(LeetCode,算法,python,动态规划)