【每日一题0724】买卖股票的最好时机

:woman_mage:给你一个数字列表,对应第 i 个元素表示第 i 天的股票价格,一天只能做一个买入或者卖出操作,买入后一定要卖出才能再次买入。请编写python函数,输出获得的最大收益。

示例:
输入:[1,4,2]
输出:3

题目难度:简单
题目来源:牛客网

def max_profit(nums:list):
    pass
    
assert max_profit([1,4,2]) == 3
assert max_profit([2,4,1]) == 2

只有一次买入卖出的机会吗? 如果可以多次买入和卖出,那就复杂了 :joy:

def max_profit(nums:list):
    maxLR = []
    for i in nums:
        ls = []
        for y in nums[nums.index(i):len(nums)]:
            s = y - i
            ls.append(s)
        a = max(ls)
        maxLR.append(a)
    return max(maxLR)

assert max_profit([1 ,4 ,2]) == 3
assert max_profit([2 ,4 ,1]) == 2

不知道需不需要取绝对值,这样写目前答案是对的

def max_profit(nums: list):
    nums1 = int(nums[1]-nums[0])
    nums2 = int(nums[2]-nums[1])
    return max(nums1,nums2)

assert max_profit([1, 4, 2]) == 3
assert max_profit([2, 4, 1]) == 2
price=[1,4,5]

def solution(pirce):
    min_price=price[0]
    max_resume=0
    for i in range(1,len(price)):
        if price[i]<min_price:min_price=price[i]
        max_resume=max(max_resume,price[i]-min_price)
    return max_resume

print(solution(price))