这个题相对简单
方法一:直接使用暴力解决方式即可解决,时间复杂度是O(n*n)
int maxProfit(std::vector<int>&prices){
int len=prices.size();
int max=0;
for(int i=0;i<len-1;i++){
for(int j=i+1;j<len;j++)
if(prices[j]-prices[i]>max)
max=prices[j]-prices[i];
}
return max;
}
方法二:时间复杂度为O(n)的方式
int maxProfit(std::vector<int>&prices){
int len=prices.size();
int max=0;
if(len==0)return 0;
int min=prices[0];
for(int i=0;i<len;i++){
if(prices[i]-min>max)
max=prices[i]-min;
if(prices[i]<min)min=prices[i];
}
return max;
}