随笔分类 -  leetcode

摘要:1.leetcode121. 买卖股票的最佳时机--zhengjun 2.leetcode122. 买卖股票的最佳时机 II--zhengjun 3.leetcode123. 买卖股票的最佳时机 III--zhengjun 4.leetcode188. 买卖股票的最佳时机 IV--zhengjun 阅读全文
posted @ 2022-06-11 15:11 A_zjzj 阅读(37) 评论(0) 推荐(0)
摘要:用 \(f_{i,0}\) 表示到了第 \(i\) 天,当前买了股票的最大利润;\(f_{i,1}\) 表示到了第 \(i\) 天,当前没有买股票的最大利润。(还是不一定要刚好第 \(i\) 天满足这个条件,可以 \(1\to i\) 中的某个值满足) 显然,递推式就是 f[i][0]=max(f[ 阅读全文
posted @ 2022-06-11 15:10 A_zjzj 阅读(29) 评论(0) 推荐(0)
摘要:因为这里有一个冷冻期,这就十分不好处理。 所以我们用 \(f_{i,0}\) 表示当前买来了股票,\(f_{i,1}\) 表示当前没有股票,处于冷冻期,$f_{i,2}$表示当前没有骨片也不处于冷冻期。(这个不一定是要在 \(i\) 这个点满足条件,也可以在 \(1\to i\) 之间某个值满足这个 阅读全文
posted @ 2022-06-11 15:10 A_zjzj 阅读(25) 评论(0) 推荐(0)
摘要:用 \(f_i\) 表示 \(1\to i\) 交易一次的最大利润 用 \(ff_i\) 表示 \(1\to i\) 交易二次的最大利润 class Solution { public: int n,f[100001],ff[100001]; int maxProfit(vector<int>& a 阅读全文
posted @ 2022-06-11 15:09 A_zjzj 阅读(26) 评论(0) 推荐(0)
摘要:先用 \(f_{i,j}\) 表示第 \(i\) 次交易,这次交易到 \(j\) 的最大利润。 这样 \(f_i\) 就可以从 \(f_{i-1}\) 那里直接得到,(参见leetcode123. 买卖股票的最佳时机 III--zhengjun 还要注意一下空间,要滚动 代码 class Solut 阅读全文
posted @ 2022-06-11 15:09 A_zjzj 阅读(27) 评论(0) 推荐(0)
摘要:思路 因为这道题可以交易任意次,所以,只要下一个比上一个大,那么肯定是取下一个更优。 如果从上一个开始买来,那么比原来的方案优了 \(a_i-a_{i-1}\),如果从之前的买来,那么还是比原来的方案多了 \(a_i-a_{i-1}\) 代码 class Solution { public: int 阅读全文
posted @ 2022-06-11 15:08 A_zjzj 阅读(27) 评论(0) 推荐(0)
摘要:思路 因为只有唯一一次的交易次数,所以肯定要在前面选一个小的,在后面选一个大的。 用 \(minx\) 维护当前 \(1\to i-1\) 的最小值,然后就直接更新答案就可以了。 代码 class Solution { public: int maxProfit(vector<int>& a) { 阅读全文
posted @ 2022-06-11 15:08 A_zjzj 阅读(26) 评论(0) 推荐(0)