Java 如何找到数组中相邻两个数字之间的最小距离?

Java 如何找到数组中相邻两个数字之间的最小距离?,java,arrays,algorithm,Java,Arrays,Algorithm,我有一个排序数组。假设它是int[]numArr=newint[]{6,9,10,27} 最小的距离在9和10之间,它是1。程序应打印此1 我不需要代码,但我希望有人能告诉我如何继续。公共静态final int findsmalletdistance(final int[]pArray){ int lMinimumDistance=Integer.MAX_值; 对于(int i=1;i

我有一个排序数组。假设它是
int[]numArr=newint[]{6,9,10,27}

最小的距离在9和10之间,它是1。程序应打印此1

我不需要代码,但我希望有人能告诉我如何继续。

公共静态final int findsmalletdistance(final int[]pArray){
int lMinimumDistance=Integer.MAX_值;
对于(int i=1;i
声明一个变量以保持当前最小距离。它可以初始化为一个非常大的数
整数.MAX\u值
,以便计算的第一个距离成为初始最小距离

使用
for
循环对值进行循环。您将在当前索引和下一个索引处访问元素,因此请尽早停止
for
循环,以防止出现
ArrayIndexOutOfBoundsException


for
循环中,计算差值。如果差值小于当前最小值,则将当前最小值更新为当前差值。

步骤1:创建变量以保存实际最小距离

第2步:遍历数组

第3步:将您的实际数字与数组中的上一个数字进行比较(如果这是此步骤中跳转的第一个元素),如果它小于最小值,则保存结果

第4步:如果数组有更多元素,则获取下一个元素,否则打印结果
int smallest = 100000   

 for (int i = 0; i < array.length; i++)

    if(array[i+1]-array[i]<smallest)
     {
       smallest = array[i+1]-array[i];
     }

System.out.println(smallest);
for(int i=0;i如果(数组[i+1]-array[i]这里有一些伪代码:

最小=一个肯定比你要找的数字大的数字

对于数组中的每个元素i,第一个元素除外

Be n = array[i] - array[i-1]

If n < smallest then

    smallest = n

End If
Be n=array[i]-array[i-1]
如果n<最小,则
最小=n
如果结束
结束于

intNumarr[]={6,9,10,27};
int numArr[] = {6, 9, 10, 27};
    for(int i=0;i<numArr.length-1;i++){
        if(numArr[i+1]-numArr[i]>0){
            System.out.println("distance between " +numArr[i]+ " and "+numArr[i+1]+ " is: "+ (numArr[i+1]-numArr[i]));
        }
    }
对于(int i=0;i0){ System.out.println(“在“+numar[i]+”和“+numar[i+1]+”之间的距离是:”+(numar[i+1]-numar[i]); } }
在数组上循环,检查
项[n]-项[n+1]
,假设一个排序的升序数组,并存储最小的结果。
项[n]-项[n+1]
将给您提供负数…如果最小值为100001呢?可能应该停在array.length-1以避免超出范围。我接受您的答案不是因为它100%有效,而是您帮助我澄清了这个概念。但是array.length超出了数组,因此,我将其修改为array.length-1。我定义了smallest integer到integer.MAX_值。谢谢你的帮助,xoxo。@StevenAkaTaz你最好按照Simon在评论中所说的对答案进行更正。勾出选中的、错误的答案。谢谢你不必要的否决票。
int numArr[] = {6, 9, 10, 27};
    for(int i=0;i<numArr.length-1;i++){
        if(numArr[i+1]-numArr[i]>0){
            System.out.println("distance between " +numArr[i]+ " and "+numArr[i+1]+ " is: "+ (numArr[i+1]-numArr[i]));
        }
    }