题目来源
解题方法
贪心
贪心的实质就是只关心当下的利益不关心长远利益,我们只要遇到今天比昨天价格高,就在昨天买入,今天卖出
class Solution {
public:
int maxProfit(vector<int>& prices) {
int res=0;
int n=prices.size();
for(int i=1;i<n;i++){
res+=max(prices[i]-prices[i-1], 0);
}
return res;
}
};
动态规划
dp[i][0]表示前i天未持有股票的最大利润,dp[i][1]表示前i天持有股票的最大利润
class Solution {
public:
int maxProfit(vector<int>& prices) {
int res=0;
int n=prices.size();
int dp[n][2];
memset(dp,0,sizeof(dp));
dp[0][0]=0;
dp[0][1]=-prices[0];
for(int i=1;i<n;i++){
dp[i][0]=max(dp[i-1][0],dp[i-1][1]+prices[i]);
dp[i][1]=max(dp[i-1][0]-prices[i],dp[i-1][1]);
}
return dp[n-1][0];
}
};