解题思路:
- 寻找最大利润,此题与121题区别在于,可以交易多次
class Solution {
public:
int maxProfit(vector<int>& prices) {
int n = prices.size();
// 初始化步骤,dp_i_0表示开始未持有时的利润未0,dp_i_1表示开始时持有的利润为最小值
int dp_i_0 = 0,dp_i_1 = INT_MIN;
for(int i =0;i<n;++i){
// 可以买卖多次,与121题目的区别
dp_i_1 = max(dp_i_1,dp_i_0 - prices[i]);
dp_i_0 = max(dp_i_0,dp_i_1+prices[i]);
}
return dp_i_0;
}
};