代码随想录:买卖股票的最佳时机
class Solution {
public:
//股票题目本质是状态转移的DP
//列举每天的各种状态,递推DP数组
int maxProfit(vector<int>& prices) {
vector<vector<int>> dp = vector<vector<int>>(prices.size(),vector<int>(2,0));
//dp[i][0]表示这天持有股票手上的最大金额,dp[i][1]表示不持有
dp[0][0] = -prices[0];
dp[0][1] = 0;
for(int i =1;i<prices.size();i++){
dp[i][0] = max(dp[i-1][0],-prices[i]);//前者为今天无作为,后者为今天刚买入
dp[i][1] = max(dp[i-1][1],prices[i]+dp[i-1][0]);//前者为无作为,后者为今天卖出
}
return dp[prices.size()-1][1];
}
};

浙公网安备 33010602011771号