前置
auto的使用
0x3f3f3f3f可以看成是10^9。
暴力
从第0位依次枚举数组里的两个数字,找出之间的最大差值。
代码形式上就是每组i和j(j>i),找到最大的[j]-[i]。
int ma=0,smax=0;
for(int i=0;i<prices.size();++i)
{
ma=0;
for(int j=i+1;j<prices.size();++j)
{
ma=max(ma,prices[j]);
}
ma=ma-prices[i];
smax=max(ma,smax);
}
一次遍历
在遍历的过程记录到最小值,同时还比较每次的差值,最后得出最大差值。
int ma=0x3f3f3f3f,mi=0;
for(auto &i:prices)
{
mi=min(mi,i);
ma=max(ma,i-mi);
}
return ma;
练习