算法思想:通过分析最大利润等于,max{a[i]-min{a[j]}} (j<i)
遍历数组,同时记录最小值min,每次与min作差,最大差则为最大利润。
class Solution { public: int maxProfit(vector<int>& prices) { if(prices.empty()){ return 0; } int maxPro=0; int min=prices[0]; for(int i=1;i<prices.size();i++){ if(prices[i]<min){ min=prices[i]; } maxPro=max(prices[i]-min,maxPro); } return maxPro; } };
class Solution { public: int maxProfit(vector<int>& prices) { int temp=0; int profit=0; for (int i = 1; i < prices.size(); i++) { int tmp = prices[i] - prices[i - 1]; if (tmp > 0) profit += tmp; } return profit; } };