题源:leetcode
链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/
采用动态规划
dp[i]=max(dp[i−1],prices[i]−minprice)
1 class Solution { 2 public: 3 int maxProfit(vector<int>& prices) { 4 int n = prices.size(); 5 if (n == 0) return 0; // 边界条件 6 int minprice = prices[0]; 7 vector<int> dp (n, 0); 8 9 for (int i = 1; i < n; i++){ 10 minprice = min(minprice, prices[i]); 11 dp[i] = max(dp[i - 1], prices[i] - minprice); 12 } 13 return dp[n - 1]; 14 } 15 };