关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
上个月关门了。
改进这个问题
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循环来获得一个非常大的列表?请帮我优化这个。谢谢。
1条答案
按热度按时间olmpazwi1#
使用一个for循环,可以找到最高和最低的元素。它们之间的区别是最大的区别。
陷阱:
如果
arr.length
我们是零,或者arr.length
小于arr_size
,这将导致错误。我不知道在这种情况下你想要什么回报。如果最高元素和最低元素之间的差异足够大(例如,如果最高元素
Integer.MAX_VALUE
最低的是负数),这可能会溢出,并返回负数。通过将返回类型更改为long
,正如斯蒂芬c在评论中所建议的。