股票的最大利润

假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?卖出时间不能早于买入时间

C++动态规划

class Solution
{
     
  public:
  int maxProfit(vector<int>& prices)
  {
     
     int n=prices.size(); 
     if(n<2) return 0;
     vector<int> dp(n,0);
     int min=prices[0];
     for(int i=1;i!=n;i++)
     {
     
       dp[i]=(prices[i]-min)>dp[i-1]?prices[i]-min:dp[i-1];
       if(prices[i]<min) min=prices[i];
     }
     return dp[n-1];
  }
};

你可能感兴趣的:(c++算法代码)