题目描述:
思路:求最大利润,想到使用动态规划。
class Solution {
public:
int maxProfit(vector<int>& prices) {
int len=prices.size();
if(len<2) return 0;
//dp[i][0] 表示第i天,持有现金
//dp[i][1] 表示第i天,持有股票
int dp[len][2];
//初始化
dp[0][0]=0;
dp[0][1]=-prices[0];
for(int i=1;i<len;i++){
//第i天,持有现金为第i-1天的现金与卖出股票的最大值
dp[i][0]=max(dp[i-1][0],dp[i-1][1]+prices[i]);
//第i天,持有股票,取买入股票的最小值
dp[i][1]=max(dp[i-1][1],-prices[i]);
}
return dp[len-1][0];
}
};