阵列运动混乱

时间:2014-04-03 22:28:16

标签: java arrays variables methods

我编写了一个(迄今为止不完整的)方法,该方法应采用一组int,找到相邻单元格之间的差异,然后返回最小的差异。

例如:

[9,16,4,8,20] - > 7,12,4,12 - > 4

[12,21,33,6,3,3] - > 9,12,27,3,0-> 0

这是我的方法:

public static int minGap(int[] a) {
    int gap = 0;
    for (int i = 0 ; i < (a.length - 1) ; i++) {
        gap = Math.abs(a[i + 1] - a[i]);
        System.out.println(gap);
    }
    return gap;
}

我相信我的中间步骤是正确的(找到差异),但我无法弄清楚如何比较所有它们并产生最小的一个。我假设我将使用if语句,但我只有一个变量&#34; gap&#34;与...合作。

请告诉我你的建议。

2 个答案:

答案 0 :(得分:2)

为目前为止发现的最小间隙引入一个新变量。它可以初始化为巨大的东西,可能是Integer.MAX_VALUE

在循环中,如果当前间隙小于到目前为止找到的最小间隙,则将到目前为止找到的最小间隙设置为当前间隙。然后在for循环完成后,您的间隙最小。

答案 1 :(得分:0)

只需添加一个min变量并根据需要进行更新。

public static int minGap(int[] a) {
    int gap = 0;
    int min = 0;
    for (int i = 0 ; i < (a.length - 1) ; i++) {
        gap = Math.abs(a[i + 1] - a[i]);
        if (i==0 || gap < min) min = gap;
        System.out.println(gap);
    }
    return min;
}