188. 买卖股票的最佳时机 IV
2024-10-18 14:44:03
Problem: 188. 买卖股票的最佳时机 IV,记录官解。
做题历程
做完这题,我才发现我之前几道股票题的做法是碰巧利用了题目的特性,无法扩大到更大条件。
借着上一题的思路,我想着能否再分而治之,把k
次购买分成若干个1
次购买。一个想法是把数组分成若干个部分,然后对每个部分求出1次购买的值。但是这样做时间复杂度太高,是k的阶乘乘以n的数量级,而且显而易见地进行了大量的重复计算。
正确思路
我前面思路没有做出来的原因是,少利用了是否持有股票这一重要条件。把这个条件加入到动态规划条件中,并加入至多进行k次交易这个条件,题目就迎刃而解了。动态规划的转移方程可以参见代码。
由此可见遇到错误死胡同需要转变思路想想。在动态规划题目里特别是变换状态条件。
复杂度
- 时间复杂度: $O(nk)$,
n
为数组长度。 - 空间复杂度: $O(k)$。
Code
1 | class Solution { |