当前位置: 首页 > 知识库问答 >
问题:

在Java中查找彼此距离最小的数组中的两个数字

长孙哲
2023-03-14

一个网站的问题:实现一个Java函数,在一个数组中找到两个彼此距离最小的数字。函数应该返回第一个数字的索引。

    null

共有1个答案

江子石
2023-03-14

步骤1:通过应用任何技术或使用任何预定义的方法对数组进行排序。arrays.sort()collections.sort等。Step2:迭代元素并找到当前和下一个元素之间的差值,将差值存储在一个变量中,当差值小于当前值时进行更新。

int difference=0;
for(int i=0; i<n-1; i++){
    if(difference > (arr[i+1]-arr[i])){
        difference = arr[i+1]-arr[i];
    }
}

现在您将拥有difference变量中的最小距离。

 类似资料:
  • 我想用C++实现这样一个算法,但是任何对解决方案的描述都会很有帮助。

  • 问题内容: 我正在尝试在数组中找到数字的最小值,但并非总是能正常工作。这是我写的代码: 有人可以纠正我吗? 问题答案: 不需要外部循环,它只运行一次,并且无论如何您都不会使用。你为什么有它? 对于内部循环,您需要与最小值进行比较。现在,您正在将其与数组中的第一个元素(不一定是最小值)进行比较。 另外,您可以从1开始循环,因为您不需要与自身进行比较(它只分配给)

  • 问题内容: 我有2个这样的Int类型的数组 我想添加每个数组的元素,例如arrayFirst [0] + arraySecond [0],arrayFirst [1] + arraySecond [1]等,然后将其分配给另一个数组,因此数组的结果将类似于 [5、7、24、29] 什么是实现这一目标的最佳实践 问题答案: 您可以像这样添加两个数组

  • 所以...我有:int array[]={-8,2,0,5,-3,6,0,9}; 我想找到一个最小的正数(在上面的列表中是2)

  • 问题内容: 我们需要在分配中递归地找到一个数组中的第二个最小整数。但是,为了更好地理解该主题,我想先通过本网站进行迭代,然后自己进行递归。 不幸的是,迭代地进行相当混乱。我知道该解决方案很简单,但我无法解决。 到目前为止,以下是我的代码: 这适用于一些数字,但不是全部。数字会变化,因为内部if条件的效率不如外部if条件的效率。 禁止阵列重排。 问题答案: 试试这个。当最小的数字是第一个时,第二个条

  • 问题内容: 我希望能够在数字数组中找到最接近的较小值。例如,如果我有: 我正在寻找小于以下值的最接近值: 该函数将返回: 另外,如果我传递的数字大于数组中的最大值,则它应返回最大值。如果我传递的数字小于最小值,则应返回nil。 我尝试使用数组上的函数执行此操作,但是单独执行此操作不会产生我想要的结果,因为我需要这样的东西: 但不幸的是,这是无效的。有什么建议?我知道可以使用while循环轻松完成此