我需要帮助找到数组中的下一个最接近的数字,从第一个位置开始直到数组结束。我正在寻找最接近目标数的最大数字。最高的数字应返回Integer.MAX_VALUE。
例如:
reg query /?
将返回
rem /?
我成功编写了嵌套for循环,它返回了下一个最大的数字,但在我的生活中无法找出如何返回最接近目标数的下一个最大数字。
int[] numbers = {12, 42, 13, 56, 41, 50, 100, 60};
答案 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计数器在临时显示临时的最接近的数字。