算法思想:通过分析最大利润等于,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;
}
};