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.动态规划
未完待续