想象一下数字 1 到 15
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
现在考虑这个列表中的某个值 V 和另一个值 D。
问题是,什么是 V - D。
但这里有一个问题:想象这些值是一个循环,而不是线性计数。换句话说,“1”紧挨着“15”。
想象一下数字 1 到 15
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
现在考虑这个列表中的某个值 V 和另一个值 D。
问题是,什么是 V - D。
但这里有一个问题:想象这些值是一个循环,而不是线性计数。换句话说,“1”紧挨着“15”。
由于您可以环绕,因此可以比较 |V - D| 与 |15 - |V - D||。这些数字中最小的将是 V 和 D 之间的最短距离。
例子:
V D |V - D| |15 - |V - D|| distance
-----------------------------------------------
1 1 0 15 0
1 15 14 1 1
2 1 1 14 1
2 15 13 2 2
您可以取较大的数字,然后减去较小的数字。
java中的例子
if(num1>num2){
num1-num2;
}else if(num2>num1){
num2-num1;
}
我不知道 javascript 但我知道它非常相似