2026/2/22 9:27:10
网站建设
项目流程
广东省网站备案系统,asp网站制作设计教程,南通做百度网站的公司哪家好,wordpress 页面 排序3573: 买卖股票的最佳时机Ⅴ思路#xff1a;状态机#xff08;买卖股票问题#xff09;dfs(i,j,0) 表示在 prices[0] 到 prices[i] 中完成至多 j 笔交易#xff0c;第 i 天结束时未持有股票的最大利润。dfs(i,j,1) 表示在 prices[0] 到 prices[i] 中完成至多 j 笔交易…3573: 买卖股票的最佳时机Ⅴ思路状态机买卖股票问题dfs(i,j,0) 表示在 prices[0] 到 prices[i] 中完成至多 j 笔交易第 i 天结束时未持有股票的最大利润。dfs(i,j,1) 表示在 prices[0] 到 prices[i] 中完成至多 j 笔交易第 i 天结束时持有股票的最大利润。dfs(i,j,2) 表示在 prices[0] 到 prices[i] 中完成至多 j 笔交易第 i 天结束时处于做空中空头状态的最大利润。此外对于 dfs(i,j,0)在计算最大值时额外考虑在第 i 天买回股票平空的情况即 dfs(i,j,2)−prices[i]。vectorarraylong long,3 f(k2,{LLONG_MIN/2,LLONG_MIN/2,LLONG_MIN/2});下标 0~k1三个状态 - 二维数组class Solution { public: long long maximumProfit(vectorint prices, int k) { int nprices.size(); vectorarraylong long,3 f(k2,{LLONG_MIN/2,LLONG_MIN/2,LLONG_MIN/2}); for(int j1;jk1;j) f[j][0]0; //保证f[j-1]不越界j从1开始 for(int p:prices){ for(int jk1;j0;j--){ f[j][0]max(f[j][0],max(f[j][1]p,f[j][2]-p)); f[j][1]max(f[j][1],f[j-1][0]-p); f[j][2]max(f[j][2],f[j-1][0]p); } } return f[k1][0]; } };