class Solution {
public:
int maxProfit(vector<int>& prices) {
/*
//v1
int maxProfit=0;
int curMin=0;
for(int i=1;i<prices.size();i++)
{
if(prices[i]<prices[curMin])
curMin=i;
else
{
int cur=prices[i]-prices[curMin];
maxProfit=maxProfit<cur?cur:maxProfit;
}
}
return maxProfit;
*/
//v2
if(prices.size()==0)
return 0;
int maxProfit=0;
int curMin=prices[0];
for(int i=1;i<prices.size();i++)
{
if(prices[i]<curMin)
curMin=prices[i];
else
{
int cur=prices[i]-curMin;
maxProfit=maxProfit<cur?cur:maxProfit;
}
}
return maxProfit;
}
};
下面的方法进行了优化,去除了数组取数据的操作。