赞
踩
本期,我将给大家讲解的是有关动态规划类的题——买卖股票的最佳时机。这个系列总共有四道题。接下来,让我们一起去看看!!!
目录
LeetCode题目链接:买卖股票的最佳时机
题目如下:
题目分析:
第一题,我们先来看最简单的(题目的难度也是逐级提升的)。
首先,我们有的小伙伴一读题,最先想到的可能就是暴力去求解这道题目,但是很遗憾当我们提交代码的时候显示的是代码超时了。因此,很显然暴力解法显然不是出题者要考察我们的地方。
那么暴力求解不行,还有没有其他思路呢?我们通过分析题目,主要意思就是找到最多一次买卖股票可以获得的最大利润的问题的解决方案。我们可以利用贪心的思路来分析,主要原理是跟踪到目前为止看到的最低价格和以当前价格卖出可以获得的最大利润,通过迭代价格并相应地更新这些值,我们可以找到可以获得的最大利润。
那么除了上述的贪心去求解还有没有其他思路呢?其实还有一种我们今天主要讲的动态规划算法。
解题思路:
在这里,我只给出动态规划的具体实现过程。
首先,我们初始化一个二维数组 arry,其中大小是价格向量的大小(size为给出的数组 prices 的大小
),arry 中每行的第一个元素表示买入或者卖出的天数,第二个元素表示当天的状态。
arry[i][0]:
arry[i][1]:
如果第i天持有股票即arry[i][0], 那么递归公式可以像如下这样:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。