跳至主要內容

14-股票交易v3

AI悦创原创字节跳动校园中山大学中山大学Python字节跳动校园中山大学中山大学Python大约 2 分钟...约 629 字

Description

给定一个数组代表股票每天的价格,请问只能买卖两次的情况下,最大化利润是多少?

请实现 Solution 类的 maxProfit 函数,输出最大利润。(不需要输出买卖的序列)

class Solution:
    def maxProfit(self, prices) -> int:

Sample Input 1

[3, 3, 5, 0, 0, 3, 1, 4]

Sample Output 1

6

Hint:在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3 - 0 = 3。随后,在第 7 天(股票价格 = 1)的时候买入,在第 8 天 (股票价格 = 4)的时候卖出,这笔交易所能获得利润 = 4 - 1 = 3 。

Sample Input 2

[1, 2, 3, 4, 5]

Sample Output 2

4

Hint: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。

Sample Input 3

[7, 6, 4, 3, 1]

Sample Output 3

0

Hint: 在这个情况下,没有能够获利的交易可以被完成,所以最大利润为 0。

欢迎关注我公众号:AI悦创,有更多更好玩的等你发现!

公众号:AI悦创【二维码】

AI悦创·编程一对一

AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发,华为 Python 机试」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh

C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh

方法一:QQopen in new window

方法二:微信:Jiabcdefh

上次编辑于:
贡献者: AI悦创,AndersonHJB
你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度