如何获得差异最小的值的索引?
How to get the index of the value with the smallest difference?
int[] b = new int[4];
int min = 10000;
int index = 0;
b[0] = arr[0][0]; //b[0]=>
b[1] = arr[1][0]; //b[1]=>
b[2] = arr[2][0]; //b[2]=>
b[3] = arr[3][0]; //b[3]=>
for (int i = 0; i < b.length; i++) {
if(b[i]>r)
b[i]=b[i]-r;
else
b[i]=r-b[i];
if (b[i] < min) {
min = b[i] ;
index = i;
}}
return index;
我想找到最接近我的数字 r 的索引。
例如,增量最小的地方
谁能帮帮我?
这里有一个例子:b[0]=1, b[1]=2,b[2]=3,b[3]=4 r=5 ---> 最小差异是 1 (5-b[3]) 所以我想要的索引是 3.
两个问题:您没有正确设置新的最小值,也没有正确设置新的索引。
for (int i = 0; i < b.length; i++) {
if (b[i]-r < min)
min = b[i];
index = i;
}
你需要在新的 min 中包含 -r,你需要把 index = I;
放在同一个块中,否则索引将永远是 b.length - 1
for (int i = 0; i < b.length; i++) {
var dist = Math.abs(b[i]-r);
if (dist < min) {
min = dist;
index = i;
}
}
int[] b = new int[4];
int min = 10000;
int index = 0;
b[0] = arr[0][0]; //b[0]=>
b[1] = arr[1][0]; //b[1]=>
b[2] = arr[2][0]; //b[2]=>
b[3] = arr[3][0]; //b[3]=>
for (int i = 0; i < b.length; i++) {
if(b[i]>r)
b[i]=b[i]-r;
else
b[i]=r-b[i];
if (b[i] < min) {
min = b[i] ;
index = i;
}}
return index;
我想找到最接近我的数字 r 的索引。 例如,增量最小的地方 谁能帮帮我?
这里有一个例子:b[0]=1, b[1]=2,b[2]=3,b[3]=4 r=5 ---> 最小差异是 1 (5-b[3]) 所以我想要的索引是 3.
两个问题:您没有正确设置新的最小值,也没有正确设置新的索引。
for (int i = 0; i < b.length; i++) {
if (b[i]-r < min)
min = b[i];
index = i;
}
你需要在新的 min 中包含 -r,你需要把 index = I;
放在同一个块中,否则索引将永远是 b.length - 1
for (int i = 0; i < b.length; i++) {
var dist = Math.abs(b[i]-r);
if (dist < min) {
min = dist;
index = i;
}
}