题目大意:给定一个一直序列,求出最大差值,注意只能由后面的数减前面的数。例如:
[7, 1, 5, 3, 6, 4]
6-1,输出答案5;
[7, 6, 4, 3, 1]输出0.
基本思路:暴力解法,需要o(n2)的时间复杂度。
优化解法,时间复杂度o(n):
int maxProfit(int* prices, int pricesSize) {
int i,start,end;
int res=0;
if(pricesSize<=1) return 0;
for(i=1,start=0,end=0;i
res) res=prices[end]-prices[start];
start=i;
end=i;
}
if(prices[i]>prices[end]) end=i;
}
if(prices[end]-prices[start]>res) res=prices[end]-prices[start];
return res;
}