程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> LeetCode Best Time to Buy and Sell Stock

LeetCode Best Time to Buy and Sell Stock

編輯:關於C++

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
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved