【发布时间】:2014-06-09 10:35:15
【问题描述】:
嘿嘿,
我实际上是在尝试实现一个以整数作为输入的函数。 我还有一个升序整数数组。
现在我尝试找到最接近我的单个整数的较低和最接近较高的数字。
我想将它作为一个数组返回,但我只找到了一种解决方案来找到最接近给定输入的数字。
public int getClosestTimeValue(int time) {
int nearest = -1;
int bestDistanceFoundYet = Integer.getInteger(null);
int[] array = null;
// We iterate on the array...
for (int i = 0; i < array.length; i++) {
// if we found the desired number, we return it.
if (array[i] == time) {
return array[i];
} else {
int d = Math.abs(time - array[i]);
if (d < bestDistanceFoundYet) {
nearest = array[i];
}
}
}
return nearest;
}
有谁知道如何在 java 中解决这个问题?
谢谢你,卢卡斯
【问题讨论】:
-
这段代码不是你的,对吧?
-
当您说“上升”时,您的意思是排序吗?如果是这样,您可以使用二进制搜索来查找数组中的数字。
-
your bestDistanceFoundYet 始终为空.. 你必须使用它..
-
旁注:撇号是这个字符:
'不是这个:` -
您可以使用 Java Map 可能是 TreeMap。使用 TreeMap 的 floor 和 ceiling 方法(也更低和更高)。你可以在几行代码中做到这一点
标签: java arrays sorting compare