题目描述
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。
注意你不能在买入股票前卖出股票。
思路
动态规划
状态转移方程:max{之前的最大值,当前的数 - 之前的最小值}
class Solution(object):
def maxProfit(self, prices):
"""
:type prices: List[int]
:rtype: int
"""
if not prices:
return 0
maxnum=0
minnum=float("inf")
for i in range(len(prices)):
minnum=min(prices[i],minnum)
maxnum=max(maxnum,prices[i]-minnum)
return maxnum