贪心思维,假设第一个元素为股票最低价,依次与接下来的每一天股价进行比较,并保留最小的股价和最大的股价收益。空间复杂度为O(1),时间复杂度为O(n)
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param prices int整型一维数组 
# @return int整型
#
class Solution:
    def maxProfit(self , prices: List[int]) -> int:
        # write code here
        if prices == []:
            return 0
            
        minp = prices[0]
        res = 0
        for i in range(1, len(prices)):
            minp = min(prices[i], minp)
            res = max(res, prices[i] - minp)
        return res