当前位置: 首页 > news >正文

算法题:买卖股票的最佳时机 II (贪心算法解决股票问题)

这道题是贪心算法的中级难度练习题,由于题目设定,整个价格都是透明的,这里并不涉及需要预测股票涨势的问题。解决思路不难,就是一旦股票价格开始下降了就买入,一旦上升了,就赶紧卖出。(完整题目附在了最后)

代码如下:

class Solution(object):def maxProfit(self, prices):has_stock = Falseprofit = 0for i in range(len(prices) - 1):if not has_stock:if i < len(prices) - 1 and prices[i] < prices[i + 1]:profit = profit - prices[i]has_stock = Trueelif has_stock:if prices[i] > prices[i + 1]:profit = profit + prices[i]has_stock = Falseif has_stock:return profit + prices[-1]elif profit == 0:profit = prices[-1] - prices[0]if profit < 0:return 0return profit

完整题目:

122. 买卖股票的最佳时机 II

给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。

在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。

返回 你能获得的 最大 利润 。

示例 1:

输入:prices = [7,1,5,3,6,4]
输出:7
解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3 。总利润为 4 + 3 = 7 。

示例 2:

输入:prices = [1,2,3,4,5]
输出:4
解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。总利润为 4 。

示例 3:

输入:prices = [7,6,4,3,1]
输出:0
解释:在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0 。

提示:

  • 1 <= prices.length <= 3 * 10^4
  • 0 <= prices[i] <= 10^4
http://www.lryc.cn/news/188272.html

相关文章:

  • Redis-持久化机制
  • 【LeetCode热题100】--155.最小栈
  • Allegro 17.2如何直接更新元件封装?
  • 高效数据管理:Java助力实现Excel数据验证
  • Easysearch Chart 0.2.0都有哪些变化
  • RV1126-RV1109-进入uboot的按键和名字显示-HOSTNAME
  • 学习vue-router
  • Python爬虫提高排名
  • SQL获取正数第N个或倒数第N个数据
  • 链表(2)——带头双向循环链表
  • C语言 函数指针
  • F. Vasilije Loves Number Theory
  • electron打包后主进程下载文件崩溃
  • Spring实例化源码解析之Custom Events下集(九)
  • python numpy库关键函数说明
  • 【Linux C】Linux如何执行一个程序(程序存储空间、系统调用、内核调用)
  • IP协议总结
  • 微信支付v2
  • tcpdump(二)命令行参数讲解(一)
  • 10_8C++
  • JVM篇---第七篇
  • 更新Xcode 版本后运行项目出现错误 Unable to boot the Simulator 解决方法
  • winform窗体控件太多显示不过来,怎么实现滚动条
  • WebSocket连接异常 Error parsing HTTP request header Connection reset by peer
  • Spring中shutdown hook作用
  • 关于IvorySQL和OpenGauss包SPEC处理的一些思考
  • 我用PYQT5做的第一个实用的上位机项目(六)
  • 【高级语言程序设计】python函数式编程(一)
  • 使用python查找指定文件夹下所有xml文件中带有指定字符的xml文件
  • flutter实现透明appbar(一)