题目大意
给定一个整数序列A,找出两个整数Ai和Aj(i<j),使得Ai-Aj的最大
分析
最简单的方法就是一个二重循环,枚举Ai和Aj两个值
上代码
for (int i = 0; i <= n; i++)
{
for (int j = i + 1; j <= n; j++)
maxq = max(A[i] - A[j], maxq);
}
我们还可以尝试优化 只枚举后一个数,用一个maxi表示当前枚举的值的前面的数的最大值,然后相减,取最大值
maxq =q[1]-q[2]; //赋值应如何赋值!!!!1
maxi =q[1];
for (int j = 2; j <= n; j++)
{
//cout << maxq << endl;
maxq = max(maxq, maxi - q[j]);
maxi = max(maxi, q[j]);
}
cout << maxq << endl;