目录
- 一、题目描述
- 二、算法原理
- 三、代码实现
一、题目描述
二、算法原理
三、代码实现
class Solution {
public:const int Init=-0x3f3f3f3f;int maxProfit(vector<int>& prices) {int n=prices.size();vector<vector<int>> f(n,vector<int>(3,Init));vector<vector<int>> g(n,vector<int>(3,Init));f[0][0]=-prices[0];g[0][0]=0;for(int i=1;i<n;i++){for(int j=0;j<3;j++){f[i][j]=max(f[i-1][j],g[i-1][j]-prices[i]);g[i][j]=g[i-1][j];if(j-1>=0) g[i][j]=max(g[i][j],f[i-1][j-1]+prices[i]);}}return max(max(g[n-1][0],g[n-1][1]),g[n-1][2]);}
};