任务描述:
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。
注意你不能在买入股票前卖出股票。
详细代码:
第一次,忘记判断输入是否为空,出了问题
第二次,在第199的测试用例,超时
class Solution:
def maxProfit(self, prices: List[int]) -> int:
if not len(prices):return 0
nextMax = 0
result = []
length = len(prices)
for i in range(length):
result.append(max(prices[i:]) - prices[i])
return max(result)
第三次,修改for循环中的判断
class Solution:
def maxProfit(self, prices: List[int]) -> int:
if not len(prices):return 0
ans = 0
lower = float('inf')
for i in prices:
lower = min(lower, i)
ans = max(ans, i - lower)
return ans