-
今日学习的文章链接,或者视频链接
-
自己看到题目的第一想法
-
看完代码随想录之后的想法
309
class Solution {
public:
int maxProfit(vector<int>& prices) {
int n = prices.size();
if (n==0) return 0;
if(n==1) return 0;
vector<vector<int>> dp(n,vector<int>(2));
dp[0][0] = 0;
dp[0][1] = -prices[0];
dp[1][0] = max(dp[0][0],dp[0][1]+prices[1]);
dp[1][1] = max(dp[0][1],-prices[1]);
for(int i = 2;i<n;i++){
dp[i][0] = max(dp[i-1][0],dp[i-1][1]+prices[i]);
dp[i][1] = max(dp[i-1][1],dp[i-2][0]-prices[i]);
}
return dp[n-1][0];
}
};
714
class Solution {
public:
int maxProfit(vector<int>& prices, int fee) {
int n = prices.size();
if(n==0) return 0;
vector<vector<int>> dp(n,vector<int>(2));
dp[0][0] = 0;
dp[0][1] = -prices[0]-fee;
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][1],dp[i-1][0]-prices[i]-fee);
}
return dp[n-1][0];
}
};
-
自己实现过程中遇到哪些困难
-
今日收获,记录一下自己的学习时长