题解 | #买卖股票的最好时机(二)# Py3 + 简单解释

买卖股票的最好时机(二)

https://www.nowcoder.com/practice/fbc5dad3e215457fb82a3ae688eb7281

import sys

# 对于每天来说,每天可能有三种可操作状态,可买入,可卖出,和不操作三种选择
# 假设当天可买入状态下,从第一台呢到第i天能收获的最高利润是 buy[i]
# 当天可卖出状态下能收获的最高利润是 sell[i]
# 不操作的话收益和 0~i之间某一天的买入或者卖出一样,无需专门记录
# 因此
# buy[i] = max(sell[i-1] - prices[i], buy[i-1])
# sell[i] = max(buy[i-1] + prices[i], sell[i-1]
# 最后能max(buy[i],sell[i]) 即可

n = int(input())
if n <= 1:
    print(0)
else:
    prices = list(map(int,input().strip().split(' ')))
    sell = [0] * (n+1)
    buy = [0] * (n+1)
    buy[0] = - prices[0] #第一天不可卖出,因此让第一天的卖出值为0
    for i in range(1,n+1):
        buy[i] = max(sell[i-1] - prices[i-1], buy[i-1])
        sell[i] = max(buy[i-1] + prices[i-1], sell[i-1])

    max_profit = max(buy[-1],sell[-1])
    if max_profit <= 0:
        print(0)
    else:
        print(max_profit)

全部评论

相关推荐

06-27 18:45
中山大学 Ruby
25届应届毕业生,来广州2个礼拜了,找不到工作,绝望了,太难过了…
应届想染班味:9爷找不到工作只能说明,太摆了或者太挑了。
点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
05-09 13:22
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务