给你一个数字列表,对应第
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
给你一个数字列表,对应第
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
只有一次买入卖出的机会吗? 如果可以多次买入和卖出,那就复杂了
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))