📅  最后修改于: 2023-12-03 14:58:06.812000             🧑  作者: Mango
这个问题可以通过贪心算法来解决。我们可以遍历每一天的股票价格,并且记录最低的买入价格和最大的利润。在遍历时,我们将当前价格与最低价格进行比较,如果当前价格更低,则更新最低价格。如果当前价格减去最低价格的差值大于最大利润,则更新最大利润。
以下是一个Python的实现:
def max_profit(prices):
"""
:type prices: List[int]
:rtype: int
"""
if not prices:
return 0
buy_price = prices[0]
max_profit = 0
for price in prices:
if price < buy_price:
buy_price = price
elif price - buy_price > max_profit:
max_profit = price - buy_price
return max_profit
这个算法的时间复杂度是O(n),其中n是股票价格的数量。
以下是一个示例,假设我们有以下股票价格:
[7, 1, 5, 3, 6, 4]
在第二天买入(价格为1),在第五天卖出(价格为6),可以获得最大利润5。
通过这个问题的解决,我们可以学习贪心算法,并且可以将它应用到其他类似的问题上。此外,我们还可以使用动态规划来解决这个问题,但是贪心算法的实现更加简单和直观。