【发布时间】:2021-02-26 14:15:48
【问题描述】:
class MaximumDiffrence
{
int maxDiff(int arr[], int arr_size)
{
int max_diff = arr[1] - arr[0];
int i, j;
for (i = 0; i < arr_size; i++)
{
for (j = i + 1; j < arr_size; j++)
{
if (arr[j] - arr[i] > max_diff)
max_diff = arr[j] - arr[i];
}
}
return max_diff;
}
}
要找到最大差异,除了对一个非常大的列表使用两个 for 循环之外,还有其他方法吗?请帮我优化一下。谢谢。
【问题讨论】:
-
用一个for循环,找到最高和最低的元素。它们之间的区别是最大的区别。
-
您能否详细说明并帮助我编写代码?谢谢。 @khelwood
-
请注意,提出此问题的方式存在问题。如果最大数非常大而最小数非常负,那么它们之间的差值表示为
int将是负数。结果必须是long。