天天刷leetcode——122 买卖股票的最佳时机

122 买卖股票的最佳时机

题目描述

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。

设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。

解题思路

1. 贪心算法

因为同一天可以同时买卖,所以只要前一天比后一天价格低就买入,利润就是后一天剪前一天。

    def maxProfit(self, prices: List[int]) -> int:
        res = 0
        for i in range(len(prices)-1):
            if prices[i] > prices[i+1]:
                continue
            else:
                res += prices[i+1]-prices[i]
        return res

时间复杂度O(n)
在这里插入图片描述

2. 回溯算法

这道题可以是回溯,决策树长下面这个样子:

3.动态规划

未完待续

猜你喜欢

转载自blog.csdn.net/qq_30516823/article/details/107684932