class Solution {
public:
int maxProfit(vector<int>& prices) {
int n = prices.size();
if(n == 0) return 0;
int minprice = prices[0];
vector<int> dp(n,0);
for(int i = 1; i < n; i++){
minprice = min(minprice,prices[i]);
dp[i] = max(dp[i-1], prices[i] - minprice);
}
return dp[n-1]; //为什么是n-1不是n
}
};
思路:【动态规划】
记录【今天之前买入的最小值】
计算【今天之前最小值买入,今天卖出的获利】,也即【今天卖出的最大获利】
比较【每天的最大获利】,取最大值即可