这是我到目前为止所完成的事情。任何人都可以帮助我吗?
假设已知min
和max
:
public static int closestValue(int[] x, int max, int min){
int mid = (max - min) / 2;
int y[] = new int[x.length];
int m = 0;
for (int i = 0; i < y.length; i++) {
// I do not know what to put here
}
}
答案 0 :(得分:1)
要找到最接近的数字,您可以比较每个数字与中间数字之间的差异,并保持较小。
public static int closestValue(int [] x , int max, int min) {
int mid = (max - min)/2;
int m = x[0];
int dif = 0, currentDif = 0;
for (int i = 1; i < x.length; i++)
{
dif = mid - x[i];
currentDif = mid - m;
if (dif * dif < currentDif *currentDif)
m = x[i];
}
return m;
}