数组中的下一个最近的数字

时间:2018-04-12 05:44:30

标签: java

我需要帮助找到数组中的下一个最接近的数字,从第一个位置开始直到数组结束。我正在寻找最接近目标数的最大数字。最高的数字应返回Integer.MAX_VALUE。

例如:

reg query /?

将返回

rem /?

我成功编写了嵌套for循环,它返回了下一个最大的数字,但在我的生活中无法找出如何返回最接近目标数的下一个最大数字。

int[] numbers = {12, 42, 13, 56, 41, 50, 100, 60}; 

2 个答案:

答案 0 :(得分:2)

最简单的方法是使用Arrays.sort方法对数组进行排序。然后,对于每个元素,您只需选择下一个元素(最后一个元素的MAX_VALUE)。

如果必须使用循环,对于每个元素,找到数组中大于当前元素的min元素。

for (int e0 : x) {
    int eMin = Integer.MAX_VALUE;
    for (int e1 : x) {
        if (e1 > e0 && e1 < eMin) {
            eMin = e1;
        }
    }
    if (eMin == Integer.MAX_VALUE) {
        System.out.println(e0 + " : MAX_VALUE");
    } else {
        System.out.println(e0 + " : " + eMin);
    }
}

答案 1 :(得分:0)

再取一个临时数组并将x复制到temp&amp; sort temp并迭代x和keeo计数器在临时显示临时的最接近的数字。