题目大意:给定一个一直序列,求出最大差值,注意只能由后面的数减前面的数。例如:
[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;ires) 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;
}
本文介绍了一种计算股票买卖最大利润的算法。该算法通过一次遍历数组即可找到最大差值,时间复杂度为O(n),适用于需要快速计算最优买卖时机的场景。
843

被折叠的 条评论
为什么被折叠?



