日常leetcode代码思路总结(持续更新)
| 难易 | leecode题号 | 题目描述 | 思路 |
|---|---|---|---|
| 简单 | 121. 买卖股票的最佳时机 | 只准一次买卖 | 0表示持有,1表示不持有; dp0i = max(dp0i-1, -pricesi); dp1i = max(dp1i-1, dp0i + pricesi) |
| 中等 | 122. 买卖股票的最佳时机 II | 无限买卖 | indexMin表示极小值下标,indexMax表示极大值下标,在极大值点切换时, 累加每次indexMax > indexMin -> pricesindexMax-pricesindexMin,额外需考虑最终一直上涨情况 |
| 困难 | 123. 买卖股票的最佳时机 III | 两次买卖 | dp00 = 0, dp01 = -prices0, dp02 = 0, dp03 = -prices0; dpi1 = max(dpi-11, dpi0 - pricesi); // 第一次买 dpi2 = max(dpi-12, dpi1 + pricesi); // 第一次卖 dpi3 = max(dpi-13, dpi2 - pricesi); // 第二次买 dpi4 = max(dpi-14, dpi3 + pricesi); // 第二次卖 |
| 困难 | 188. 买卖股票的最佳时机 IV | k次买卖 | 由2次买卖找规律推导出来,k = k * 2,通过奇偶进行[0, n), [0, k)双层遍历 |