121. 买卖股票的最佳时机
文档讲解:代码随想录. 买卖股票的最佳时机
视频讲解:动态规划之 LeetCode:121.买卖股票的最佳时机1
状态:已完成
代码实现
class Solution {
public:int maxProfit(vector<int>& prices) {// 第四种方法,动态规划int len = prices.size();if (len == 0)return 0;// 1.构建dp数组vector<vector<int>> dp(len, vector<int>(2));// 2.初始化dp[0][0] = -prices[0];dp[0][1] = 0;for (int i = 1; i < len; 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]);cout << "the dp "<< i <<", 0 is " << dp[i][0] << ", 1 is" << dp[i][1]<< endl;}return dp[len - 1][1];}
};
心得体会
- 通过两次的取最大值判断,还是有些绕,但是通过打印dp数组,还是能理解一些的。