得到错过的数组元素

时间:2014-11-18 13:04:49

标签: java arrays

我有一个接收数组的方法

public static int getMissed(int[] array) {...}

例如它将是{1,3,5,7,11} 如你所见,错过了4d元素,它应该是9。

例如,数组的大小未知且步骤未知,我怎样才能找到错过的元素? 我不知道。这是我的测试任务中的问题,我无法解决它。

1 个答案:

答案 0 :(得分:0)

我写这篇文章只是为了给出一个解决方案。我相信会有更好的答案。

public static int getMissed(int[] array) {

    int difference, difference_2;

    if (array.length < 3) // we need at least 3 elements 
        return -1; 

    difference   = array[1] - array[0];
    difference_2 = array[2] - array[1];

    if (difference == difference_2) {
        for (int i = 3; i < array.length; i++) {
            if (array[i] - array[i - 1] != difference) {
                return array[i] - difference;
            }
        }
    }
    else 
    {
        if (difference > difference_2)
            return array[1] - difference_2;
        else
            return array[2] - difference;
    }
    return -1;
}